CN103168457B - For providing unequal error protection and the general file transmission method of bundled files transmission service - Google Patents

For providing unequal error protection and the general file transmission method of bundled files transmission service Download PDF

Info

Publication number
CN103168457B
CN103168457B CN201180051061.5A CN201180051061A CN103168457B CN 103168457 B CN103168457 B CN 103168457B CN 201180051061 A CN201180051061 A CN 201180051061A CN 103168457 B CN103168457 B CN 103168457B
Authority
CN
China
Prior art keywords
symbol
file
data object
bag
source
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.)
Expired - Fee Related
Application number
CN201180051061.5A
Other languages
Chinese (zh)
Other versions
CN103168457A (en
Inventor
迈克尔·G·卢比
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 US13/041,085 external-priority patent/US9288010B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Priority to CN201610329577.6A priority Critical patent/CN105812098A/en
Publication of CN103168457A publication Critical patent/CN103168457A/en
Application granted granted Critical
Publication of CN103168457B publication Critical patent/CN103168457B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

There is provided and transmitted from electronic installation or the method and apparatus of the data object of system by packet network, wherein source data is represented by the coded symbols in wrapping, make by described source data being arranged to multiple sources symbol, produce multiple coding bag, wherein coding bag includes multiple coded identifications of the source data of pack arrangement that general object Symbol recognition symbol " UOSI " and expression identify by described UOSI, and the plurality of coding bag is sent to described packet network, at least approximately can recover described source data from described coded symbols.

Description

For providing unequal error protection and the general file transmission method of bundled files transmission service
The cross reference of related application
This non-provisional application case advocates entitled filed in 22 days October in 2010 " being used for according to 35USC § 119 (e) Unequal error protection and file delivery method (the File Delivery Methods for of bundled files transmission service are provided Providing Unequal Error Protection and Bundled File Delivery Services) " the 61/406,091st The benefit of priority of number U.S. Provisional Patent Application case, the full content of described application case is for all purposes with the side quoted Formula is incorporated herein.
The present invention can relate to following commonly assigned patent or application case, and each in described patent or application case is for institute Purpose is had to be incorporated herein in entirety by reference:
1) entitled " the information extra-code generator for communication system of Mike's G rupee (Michael G.Luby) is authorized And decoder (Information Additive Code Generator and Decoder for Communication Systems) No. 6,307,487 United States Patent (USP) (hereinafter " Luby I ") ";
2) entitled " the information additional group code generation for communication system of Mike's G rupee (Michael G.Luby) is authorized Device and decoder (Information Additive Group Code Generator and Decoder for Communication Systems) No. 6,320,520 United States Patent (USP) (hereinafter " Luby II ") ";
3) the entitled " for being solved of M A Mingxiao crolla west (M.Amin Shokrollahi) is authorized by passivation The system of code chain reaction code and process (Systems and Processes for Decoding a Chain Reaction Code Through Inactivation) " No. 6,856,263 United States Patent (USP) (hereinafter " Shokrollahi I ");
4) entitled " system coding of chain reaction code of M A Mingxiao crolla west (M.Amin Shokrollahi) is authorized With decoding (Systematic Encoding and Decoding of Chain Reaction Codes) " No. 6,909,383 U.S. State's patent (hereinafter " Shokrollahi II ");
5) entitled " multilevel code for communication system of M A Mingxiao crolla west (M.Amin Shokrollahi) is authorized Generator and decoder (Multi-Stage Code Generator and Decoder for Communication Systems) " No. 7,068,729 United States Patent (USP) (hereinafter " Shokrollahi III ");
6) Mike's G rupee (Michael G.Luby), M A Mingxiao crolla west (M.Amin Shokrollahi) and horse are authorized Entitled " file download and streaming system (the File Download and Streaming of Ke Huasheng (Mark Watson) System) 7,418,65l United States Patent (USP) (hereinafter " Luby III ") ";
7) Mike G rupee (Michael G.Luby) and the title of M A Mingxiao crolla west (M.Amin Shokrollahi) For " can be applicable to coding and decode (the In-Place Transformations with Applications of conversion on the spot of all kinds of code To Encoding and Decoding Various Classes of Codes) " No. 2006/0280254 United States Patent (USP) open Case (hereinafter " Luby IV ");
8) M A Mingxiao crolla west (M.Amin Shokrollahi) entitled " for communication system based on multi-field Code generator and decoder (Multiple-Field Based Code Generator and Decoder for Communications Systems) " No. 2007/0195894 United States Patent (USP) publication (hereinafter " Shokrollahi IV”);
9) title of M A Mingxiao crolla west (M.Amin Shokrollahi) et al. filed in 23 days October in 2009 For " use for encoding and decode process has the method and apparatus of FEC code of permanent passivation of symbol (Method and Apparatus Employing FEC Codes with Permanent Inactivation of Symbols for Encoding and Decoding Processes) " No. 12/604,773 U.S. patent application case (hereinafter “Shokrollahi V”);
10) Mike's G rupee (Michael G.Luby) filed in 19 days Augusts in 2009 entitled " for coding and The use of decoding process has method and apparatus (the Methods and of the FEC code of the permanent passivation of symbol Apparatus Employing FEC Codes with Permanent Inactivation of Symbols for Encoding and Decoding Processes) " No. 61/235,285 U.S. Provisional Application case (hereinafter " Luby V ");And
11) Mike's G rupee (Michael G.Luby), M A Mingxiao crolla west (M. filed in 18 days Augusts in 2010 Amin Shokrollahi) entitled " use for encoding and decode process has the permanent passivation of symbol Method and apparatus (the Methods and Apparatus Employing FEC Codes with Permanent of FEC code Inactivation of Symbols for Encoding and Decoding Processes) " No. 12/859,161 U.S. special Profit application case (hereinafter " Shokrollahi VI ").
Reference
Each in below with reference to is incorporated herein the most in entirety by reference:
This (Andres Albanese), John Nei Sibulumo in [Alba in these 96] or [PET] Andres Alba (Johannes Blomer), Jeff's Edmonds (Jeff Edmonds), Mike's rupee (Michael Luby) and Ma Du the Sudan " precedence level code transmission (Priority Encoding Transmission) " of (Madhu Sudan), IEEE information theory meeting Periodical (IEEE Transactions on Information Theory) volume 42 the 6th phase (in November, 1996);
This (A.Albanese), M rupee (M.Luby), J cloth Shandong in [Alba in these 97] or [PET-patent] A Alba Silent (J.Blomer), J Edmonds (J.Edmonds) entitled " for subpackage corresponding to precedence level code data be System, wherein reconstruct data are corresponding to the priority being divided into a few part and the bag (System being divided into a few part received for Packetizing Data Encoded Corresponding to Priority Levels Where Reconstructed Data Corresponds to Fractionalized Priority Level and Received Fractionalized Packets) " No. 5,617,541 United States Patent (USP)s (authorizing on April 1st, 1997);
[ALC] M rupee (Luby, M.), M Hua Sheng (Watson, M.), " asynchronous point of L Wei Qisanuo (Vicisano, L.) Layer decoding (ALC) Protocol Instantiation (Asynchronous Layered Coding (ALC) Protocol Instantiation) ", IETF RFC5775 (in April, 2010);
[FEC BB] M Hua Sheng (Watson, M.), M rupee (Luby, M.) and L Wei Qisanuo's (L.Vicisano) is " front Block (Forward Error Correction (FEC) Building Block) is built to error correction (FEC) ", IETF RFC 5052 (in Augusts, 2007);
[FLUTE] T Pa Yila (Paila, T.), M rupee (Luby, M.), R Eero Lehtonen (Lehtonen, R.), sieve's V card " file transmission (the FLUTE--that FLUTE-is carried out by irreversibly delivering of (Roca, V.), R Walsh (Walsh, R.) File Delivery over Unidirectional Transport) ", IETF RFC3926 (in October, 2004);
[LCT] M rupee (Luby, M.), M Hua Sheng (Watson, M.), L Wei Qisanuo (Vicisano, L.) " layering is translated Code conveying (LCT) builds block (Layered Coding Transport (LCT) Building Block) ", IETF RFC 5651 (in October, 2009);
[rupee 2010] or [RaptorQ-Spec] M rupee (M.Luby), A Xiao Keluolaxi (A.Shokrollahi), M China Raw (M.Watson), T Stoker Harmer (T.Stockhammer), L graceful generation (L.Minder) " for object transmission RaptorQ forward error correction scheme (RaptorQ Forward Error Correction Scheme for Object Delivery) ", Draft-ietf-rmt-bb-fec-raptorq-04, reliable multicast conveying (on August 24th, 2010);
[rupee 2007] or [Raptor-RFC-5053] M rupee (M.Luby), A Xiao Keluolaxi (A.Shokrollahi), M Hua Sheng (M.Watson), T Stoker Harmer (T.Stockhammer) " for object transmission the bird of prey (Raptor) front To error correction scheme (Raptor Forward Error Correction Scheme for Object Delivery) ", IETF RFC 5053 (in JIUYUE, 2007);
In [rupee 2002] M rupee (Luby, M.), L Wei Qisanuo (Vicisano, L.), J lid Mel (Gemmell, J.), L Rope (Rizzo, L.), M Han Deli (Handley, M.) and J gram of labor croft (J.Crowcroft) " in reliable multicast Use forward error correction (FEC) (The Use of Forward Error Correction (FEC) in Reliable Multicast) ", IETF RFC3453 (in December, 2002);
[Song Gang] or [LDPC-extension] law and politics pine ridge (Hosei Matsuoka), hillside plot bright (Akira Yamada) and big vow intelligence it (Tomoyuki Ohya) " is applied to the low density parity check code extension of broadcast-communication syndicated content transmission (Low-Density Parity-Check Code Extensions Applied for Broadcast-Communication Integrated Content Delivery) ", the research laboratory of NTT DOCOMO company (3-6, Hikari-No-Oka, Yokosuka, Kanagawa, 239-8536, Japan);And
[sieve card] or [LDPC-RFC-5170] sieve's V card (V.Roca), C Nuo Yiman (C.Neumann), D Fu Luodete (D. Furodet) " ladder of low-density checksum (LDPC) and triangle forward error correction (FEC) scheme (Low Density Parity Check (LDPC) Staircase and Triangle Forward Error Correction (FEC) Schemes) ", IETF RFC5170 (in June, 2008).
Technical field
The present invention relates to encode in a communications system reconciliation code data, and systems in an efficient way coding and Decoding data with in view of institute reception and registration data in mistake and gap and disposal different file delivery method communication system.
Background technology
For being transmitted the theme that the technology of file is a lot of document between transmitter and recipient by communication channel.Preferably Ground, recipient needs to receive the accurate copy of the data being passed through channels transmit by transmitter with definitiveness to a certain degree.When When channel does not have preferable fidelity (it contains most of physically realizable system), worried is how to process in transmission Middle loss or the data obscured.Lose data (erasing) to be usually easier to process compared with damaging data (mistake), this is because Recipient cannot always tell and damage the situation that data are the data of garbled-reception.Develop many error correcting codes to come erasing And/or mistake corrects.Generally, based on the character about the distortion of the channel in order to launch data and launched data Certain information selects used special code.For example, when known channel has long-term distortion, burst error code That application may be best suited for.When simply expect short do not take place frequently wrong time, simple parity code is probably most preferably 's.
As used herein, " source data " refers to available at one or more transmitters and uses receptor to lead to Cross the data recovered and obtain from the institute's transmitting sequence with or without mistake and/or erasing, etc..As made herein With, " encoded data " refers to be transmitted and may be used to recover or obtain the data of source data.In a simple situation, warp Coded data is the copy of source data, if but the encoded data received (attribution different from the encoded data launched In mistake and/or erasing), then under this simple scenario, can in the case of lacking about the excessive data of source data Can Restorer varieties data completely.Transmission can be carried out by space or time.In the case of more complicated, base in conversion Produce encoded data in source data, and it is transmitted into receptor from one or more transmitters.If it find that source Data are the parts of encoded data, then coding is referred to as " system ".In the simplified example of system coding, close Redundancy in source data is attached to the end of source data, to form encoded data.
The most as used herein, " input data " refer to be present in FEC (forward error correction) encoder device or FEC The data of the input of coder module, assembly, step etc. (" FEC encoder "), and " output data " refer to deposit It is the data at the output of FEC encoder.Correspondingly, expection output data are present in the input of fec decoder device Place, and by expection fec decoder device based on its handled output data input-output data or its homologue.At some In the case of, input data are (or comprising) source datas, and in some cases, output data are (or comprising) encoded datas. For example, if do not processed before the input of FEC encoder, then input data will be source data.But, In some cases, source data is processed into multi-form (such as, static decoder, inverse encoder or another process), To produce the intermediate data replacing source data to be presented to FEC encoder.
In some cases, sender device or sender process code can include more than one FEC encoder, i.e. Source data is transformed to encoded data by a series of multiple FEC encoder.Similarly, at receptor, can have one Individual above fec decoder device, fec decoder device is employed to produce source data from the encoded data received.
Data can be considered to be divided into some symbols.Encoder is to produce warp knit code symbol from the sequence of source symbol or incoming symbol Number or the computer system of output symbol, device, electronic circuit or its fellow, and decoder is from being received or through extensive The homologue of the sequence of multiple coded symbols or output symbol Restorer varieties symbol or incoming symbol.Encoder by Channel in the time and/or spatially separates, and any received coded symbols can be launched not encoded with corresponding Symbol is the most identical, thereby increases and it is possible to not by the sequential reception coded symbols the most identical with the sequence launching coded symbols. " size " of symbol can be measured in step-by-step, and no matter the most whether symbol is divided into bit stream, is wherein selected from tool when symbol Have 2MDuring the alphabet of individual symbol, symbol has the size of M position.In many examples in this article, by eight bit word Joint measures symbol, and code (may exist 256 in the range of having 256 kinds of possible fields in each eight bit byte Plant 8 possible bit patterns), it should be appreciated that different DATA REASONING units, and measurement data in every way can be used Known to being.In general literature, term " byte " is used interchangeably with term " eight bit byte " sometimes, with instruction 8 place values, but in some contexts, " byte " instruction X place value, wherein X is not equal to 8, such as, X=7, and Therefore, in general, term used herein " eight bit byte ".Unless otherwise instructed, example the most herein is not It is limited to the specific integer of every symbol or non-integer position.
Luby I describes and uses code (such as chain reaction code etc.) to calculate efficiently, to store efficiently and to come in the way of bandwidth-efficient Process error correction.One characteristic of the coded symbols produced by chain reaction encoder is that receptor can receive foot one Original document is just recovered after enough coded symbols.Specifically, in order to recover original K source symbol with high probability, Receptor needs about K+A coded symbols.
" definitely receiving expense " under given situation is represented by value A, and " relative reception overhead " can be calculated as ratio A/K.Definitely receiving expense is the measurement to the additional data volume needing reception in addition to information theory minimum data amount, and Definitely receive expense and can be depending on the reliability of decoder, and can change according to the number K of source symbol.Similarly, phase It is to needing the additional data volume received relative to the most extensive in addition to information theory minimum data amount to receiving expense A/K The measurement of the size of multiple source data, and also can be depending on the reliability of decoder, and can be according to the number K of source symbol Change.
For by the communication of network based on packet, chain reaction code is very useful.But, chain reaction code has Time be probably the heaviest.If using chain reaction or another dynamic coding encoded without code check code Static decoder is used to encode source symbol before device, then decoder may be able to more frequently or more easily decode. Such as, Shokrollahi I illustrates these decoders.In example shown at which, source symbol is delivered to static state The incoming symbol of encoder, static decoder produces output symbol, and described output symbol is delivered to the input of Dynamic Encoder Symbol, Dynamic Encoder produces output symbol, and described output symbol is coded symbols, and wherein Dynamic Encoder is can be by Do not become with the number of incoming symbol fixed ratio quantity produce several output symbols without rate coder.Static decoder The encoder of more than one cbr (constant bit rate) may be comprised.For example, static decoder may comprise Hamming encoder, low Density parity check (" LDPC ") encoder, high density even-odd check (" HDPC ") encoder and/or its fellow.
Chain reaction code has the property that at decoder when the symbol received recovers some symbols, those symbols Possibility can be in order to recover additional symbols, and additional symbols again may be in order to recover more symbol.Preferably, at decoder The chain reaction of the symbol that place solves can continue so that recovered all wanted symbols before being finished received symbol pond.Excellent Selection of land, the computation complexity performing chain reaction coding and decoding process is low.
Recovery process at decoder may relate to determine to have received which symbol, and original input symbol can be mapped to by establishment The matrix of the they's coded symbols received, then Inverted matrix, and perform Inverted matrix and the warp knit code symbol received Number vector matrix multiplication.In typical system, the strength of this situation is implemented the amount of calculation that can overrun and has Too much memory requirement.Certainly, the specific collection of the coded symbols for being received, recover all of original input symbol Being probably impossible, even with possible, the cost that calculates calculating result is still probably high.
Forward error correction (" FEC ") Object Transmission Information (" OTI ") or " FEC OTI "
Receive the FEC OTI of (or can conclude that) based on receptor, receptor can determine that source block that file transmits and sub-block are tied Structure.In [Raptor-RFC-5053] and [RaptorQ-Spec], FEC payload ID is (SBN, ESI), Qi Zhong In [Raptor-RFC-5053], source block number (SBN) is 16 positions, and coded identification ID (ESI) is 16 positions, and In [RaptorQ-Spec], SBN is 8 positions, and ESI is 24 positions, as Fig. 1 is illustrated herein.This One inferior position of FEC payload ID form be to predefine FEC payload ID distribute to SBN and Distribute to the bits number of ESI, and be sometimes difficult to determine that will be applicable to the appropriate of All Files Transfer Parameters mixes.
For example, when using [Raptor-RFC-5053], only 216=65,536 ESI can be with in some cases Possible restrictive, this is because in some cases, it can be possible to exist and have 8, the source block of 192 source symbols, and therefore The number of coded symbols is the biggest 8 times, thus limits spendable possible code check, in the case, described code check It is limited to be not less than 1/8.In this example, possible situation is, available 216=65,536 source blocks are possibly more than can The number (such as, 8,192 source symbols respectively with 1,024 eight bit byte) that can be able to use, supported file size Being 524GB, it is in numerous applications than required big two orders of magnitude of size.
As another example, when using [RaptorQ-Spec], only 28=256 SBN can be with in some cases may be used Can be restrictive, this is because for 4GB file, if each source block be limited to 8MB (it can be following situation: as The maximum sub-block size of fruit is 256KB, and minimum subsymbol size is 32 eight bit bytes, and symbol size is 1,024 Eight bit byte), then the number of source block is limited to 256 and file size can be limited to 2GB again.In this example, may Situation be to have 224=16,777,216 may (such as, can have with being more than the number that may use by coded symbols Have 8,192 source symbols), the number of possible coded symbols is big 2,048 times, and this in some applications may the most all Need not.
Another desirable characteristic is to provide for the ability of priorization coding transmission between the different piece of file, institute State priorization coding transmission and be sometimes also called unequal error protection (" UEP ").For example, it may be desired to than residue 90% more effectively protects front the 10% of file against packet loss.For example, how [LDPC-extension] description can expand Exhibition [LDPC-RFC-5170] is to provide the support to UEP.In the case, actual FEC code is modified self, with The different grades of odd-even check protection of the different piece to file is provided.But, there is shortcoming in the method.For example, It is not intended to revise FEC code self to provide UEP, this is because this measure makes enforcement and test FEC code self complicated Change.Additionally, result shown in Fig. 6 as [LDPC-extension], the gained performance of the method is (just for the difference of file Part provide for the recuperability of packet loss) be far from optimal.
As described in [PET] and [PET-patent], it is provided that a kind of mode of UEP file transmission capacity is for file not Distribute the different piece of each bag according to its priority and size with part.But, worried is how to incorporate these UEP method so that each different piece of file can be divided into source block and sub-block independently with the other parts of file, with (such as) support the little memorizer decoding of the often part to file, and permission receptor is provided the most again in each bag Determine FEC payload ID which symbol of every part of file is contained in each bag.It is very difficult to use have FEC payload ID of form (SBN, ESI) supports that this is incorporated to, this is because for every part of file, pin Accord with during in the bag of file Part I, corresponding SBN and ESI of symbol likely differs from the bag for file Part II Number SBN and ESI.
HTTP restorative procedure
In 3GPP MBMS standard TS26.346 of broadcast/group broadcast file transmission, the request of repairing is carried out (such as) Mode is used in [Raptor-RFC-5053] FEC payload ID specified, i.e. by specifying source block number (SBN) With coded identification identifier (ESI).Although it is true that the method has requirement server at the server responding the request of repairing Surely for broadcast/group broadcast file transmission file transferring structure (i.e., it is desirable to server interpretation file in which part be by SBN and the ESI reference asked) ad hoc approach in the case of be rational, but this measure require know source block and Sub-block structure, and symbol size T.On the other hand, can exist millions of be dispersed on big geographic area wide Broadcast/multicast receiver, and to require to dispose special response server from capital cost and from the perspective of operation be both expensive The most troublesome.Widespread deployment is standard HTTP supporting the Internet-delivered (such as, webpage, stream video etc.) The webserver and network cache.What is desired is that support use standard http network server and network high-speed delay Deposit the method as broadcast/group broadcast response server.
Summary of the invention
In the embodiment of file delivery method and equipment, general file Symbol recognition symbol (" UFSI ") or general object symbol Number identifier (" UOSI ") is associated with bag, provides together with described bag, to identify the structure in described bag, needs institute State structure and be contained in the coded identification in described bag for identifying.When so employed, described UFSI/UOSI permission is right The enhancing of FEC and file/object transmission is disposed, including: unequal error protection, all portions of transmitted data Divide the FEC protection all with same levels;And binding object transmission, wherein than the feelings disposing multiple object individually Condition more effectively disposes multiple object.
Described in detail below will provide the more preferably understanding of the character to the present invention and advantage together with alterations.
Accompanying drawing explanation
Fig. 1 is the figure illustrating conventional FEC payload ID;Figure 1A illustrates for Raptor-RFC FEC payload ID of 5053, and Figure 1B illustrates FEC payload ID for RaptorQ-Spec.
Fig. 2 is the figure illustrating FEC payload ID for basic general file transmission (" UFD ") method.
Fig. 3 is the flow chart illustrating transmitter basic UFD method.
Fig. 4 is the flow chart illustrating receptor basic UFD method.
Fig. 5 is (SBN, ESI) mark and general file corresponding with the symbol of the file symbol of the symbol illustrating file The example of the mapping of number identifier (" UFSI ").
Fig. 6 is to illustrate the transmission of transmitter general file, the flow process of unequal error protection (" UFD-UEP ") method Figure.
Fig. 7 is the flow chart illustrating receptor UFD-UEP method.
The reality that (SBN, the ESI) of the file that Fig. 8 illustrates two parts including each having different priorities identifies Example.
Fig. 9 illustrate (SBN, ESI) identifier of the coded symbols of two parts from file with containing described The coded symbols of part and the example corresponding to Fig. 8 of the mapping between being contained in the bag of the UFSI in each bag.
Figure 10 illustrates the performance of the simple UEP file delivery method of use [RaptorQ-Spec].
Figure 11 illustrates the simple UEP file delivery method using [RaptorQ-Spec] and UFD-UEP file Example Performance comparision between transmission method.
Figure 12 illustrates the file transmission of the file using [RaptorQ-Spec], the file of multiple file passes Pass the example Performance comparision between UFD bundled files transmission method.
Figure 13 is the block diagram of communication system, and described communication system can be used for producing, sending and receive Raptor, RaptorQ Or other bag is as the part of file transmission.
Figure 14 is the diagram of the communication system that can carry out file transmission wherein, and one of them receptor is from multiple the most only Vertical transmitter receives output symbol.
Figure 15 is the diagram of the communication system that can carry out file transmission wherein, plurality of may independent receptor from Multiple generally independent transmitters receive output symbol, receive input file time less than only use a receptor and / or only use the time in the case of a transmitter.
Figure 16 describes the block request streaming system that may be used to use HTTP streaming server to provide file transmission Element.
Figure 17 illustrates the block request streaming system of Figure 16, and it illustrates in more detail and can be used for file biography The element of the FTP client FTP passed, FTP client FTP is coupled to block service infrastructure (" BSI ") and is injected by content to receive The data that system processes.
Figure 18 illustrates the hardware/software enforcement that may be used to the injected system that document transmits for file.
It is real that Figure 19 illustrates the hardware/software that may be used to receive the FTP client FTP of the file being delivered to FTP client FTP Execute.
Figure 20 illustrates the example of general FEC OTI element format.
Figure 21 illustrates the example of scheme specific FEC OTI element format.
Detailed description of the invention
In embodiment in this article, file transmission is by sending the encoder/transmitter system of file and receiving the reception of file Device/decoder system performs.The form of coordinating transmissions so that decoder understands the data coded by encoder.As the most each Planting shown in example, file transmission is the example of general object transmission, and unless otherwise instructed, otherwise should from these examples It is clear that can be by object as file, thereby increases and it is possible to by file as object.
In bag transmission system, data are organized as bag, and launch as bag.Each bag has permission receptor and determines bag In to have what and described bag be the element how to arrange.By using technology described herein, use forward direction for launching The bag of error correction (" FEC ") provides motility.
By using these technology, it is possible to provide do not wait FEC protection, and the binding transmission of file.It is well known that when being permitted When multifile is transmitted as individual files, transmit the recuperability to packet loss than being linked to be bigger together at All Files File and in transmission recuperability in the case of bigger file described in protection much smaller.However, it is necessary to send as less The signal of the structure of the bigger file of the combination of file, and in order to recover any relatively small documents in big file, receptor leads to Often needing to recover whole big file, even if receptor is concerned only with, to recover the subset of relatively small documents be also such.
It is therefore preferable that file transfer system or method assent the source block number of the file transferring structure making file allowable and every source Any flexible combination of coding symbol number purpose of block.Also should there is following situation: file delivery method provides for packet loss Effective protection, and support that the different piece of file is transmitted by the file of the protection of different priorities, wherein file is every A part can have source block structure and the sub-block structure of the other parts being different from file.Again, civilian in some cases Part is considered the particular instance of object, but it should be understood herein that, it is used herein to describe the conveying of file and the reality of disposal Example can also be used for being referred to as the data object of file, such as from long data block, the portion of video sequence of data base Point, etc..
File/object transmission system or method should provide: have many relatively small documents of the protective efficacy of big file/object/right The simple of the transmission of elephant, relatively small documents/object structure is signaled, and receptor only recovers relatively small documents/object independently Subset and do not recover the ability of all relatively small documents/objects.Now will be described with the reality of the system of these desirable character Example.
Basic general file transmission (" UFD ") method and system
Now will describe basic general file transmission (" UFD ") method and corresponding system, wherein UFD comprises compared to existing There is the significant advantage of file delivery method.Forward error correction (" FEC ") payload ID bag for basic UFD method Including general file Symbol recognition symbol (" UFSI ") field, described field (such as) can be 32 bit fields.Now will describe successively The transmitters and receivers method of basic UFD method.Again, when file is referred to as object, " UFSI " may It is referred to alternatively as " UOSI " (general object Symbol recognition symbol).
Referring to Fig. 3, transmitter basic UFD method is described.Transmitter can use existing method produce (such as) as FEC Object Transmission Information (" OTI ") described in [Raptor-RFC-5053] or [RaptorQ-Spec] (sees (example As) [RaptorQ-Spec] the 4.3rd chapter), and use FEC OTI to determine source block and the sub-block structure in order to launch file, And determine that (SBN, ESI) (sees (such as) [RaptorQ-Spec] the 4.4th to the relation between the coded symbols of file Chapter).
For example, as described in [RaptorQ-Spec], produced FEC OTI can be (F, Al, T, Z, N), its Middle F is the size of armed file, and Al is to guarantee that subsymbol is directed on the memory heap boundaries of multiple being Al To quasi-divisor, T is to be generated and the size of symbol that sends in the transmission, and Z is that file is divided into transmit The number of source block, and N is that each source block is in order to transmit the number of be divided into sub-block.The step of this situation such as Fig. 3 Shown in 300.
Transmitter can form the coded symbols that will send in bag, and uses existing method to produce these warps based on source block SBN and ESI of coded identification, and if use sub-block, then also use sub-block structure, such as, such as [RaptorQ-Spec] Described in.Whenever will sending coded symbols, transmitter can determine that the SBNA of the coded symbols that will produce And ESIB, as shown in the step 310 of Fig. 3, and then transmitter can use existing skill based on (SBN, ESI)=(A, B) Art (such as, the technology described in [RaptorQ-Spec]) produces the value of coded symbols, such as institute in the step 320 of Fig. 3 Show.Then, the UFSIC of those coded symbols is calculated as C=B*Z+A, as shown in the step 330 of Fig. 3.
Transmitter can send coded symbols in bag, and FEC payload ID wherein wrapped is set to coded symbols UFSIC, as shown in the step 340 of Fig. 3.Transmitter then can be determined whether to send more coded symbols, As shown in the step 350 of Fig. 3, and if it is, then transmitter can produce extra coded symbols with send, As shown in the "Yes" branch of the step 310 to Fig. 3, and if it is not, so transmitter can terminate, as to figure Shown in the "No" branch of the step 360 of 3.
Many changes of transmitter basic UFD method can be there are.For example, transmitter can at least some in bag Sending more than one coded symbols in bag, in said case, FEC payload ID may be set to be contained in bag The UFSI of the first coded symbols, and the optional additional symbols being contained in bag so that its corresponding UFSI value is continuous print. For example, if carrying three coded symbols in bag, and first this kind of symbol has UFSI=4, and 234, that Other two coded symbols can respectively have the symbol of UFSI4,235 and UFSI4,235.As other alternative The example of case, transmitter can predefine generation how many coded symbols, and determine before producing any coded symbols (SBN, the ESI) value of all coded symbols that will produce.As another example, can be without producing (SBN, ESI) value UFSI value is directly produced in the case of intermediate steps.
As another example of change, the FEC OTI information of other form can be produced.For example, basic UFSI BU May be included in the FEC OTI of file, basic UFSI BU can use as follows: the warp knit code symbol being contained in bag Number be U+BU by the UFSI used by FEC transmitters and receivers, wherein U is carrying coded symbols UFSI entrained in bag.If it is therefoie, for example, bag carries U=1, the basic UFSI in 045, and FEC OTI It is BU=2,000,000, then coded symbols UFSI is 2,001,045.Basic UFSI is used to have some advantages. For example, the protocol groups described in [FLUTE], [ALC], [LCT], [FEC BB] is by the transmission of also referred to as TOI Object identifier is associated with the FEC OTI of file to be conveyed or object.It is possible that same file is encoded Symbol can send at different time or in different sessions, and can be associated from different TOI.Also, can be for each The bag that different TOI are associated, it is favourable for sending the encoded bag started with UFSI=O.Basic by having appointment UFSI is as the ability of the part of FEC OTI, and different basic UFSI can be with the coded symbols institute pin to be sent of file To each TOI be associated, and be not for different TOI and send the coded symbols repeated.For example, same file Coded symbols can send in the bag being associated with TOI=1 and be associated with TOI=2, wherein with TOI=1 phase The basic UFSI of association is set as 0, and the basic UFSI being wherein associated with TOI=2 is set as 1,000,000.Connect , the encoded bag of both TOI=1 and TOI=2 can contain the sequence of UFSI0, UFSI1, UFSI2 etc., and There will be no the coded symbols of the repetition sent in the middle of the sent coded symbols being associated with two TOI, as long as The coded symbols sent for the file with TOI=1 is less than 1,000,000.
Referring to Fig. 4, receptor basic UFD method is described.Receptor can use prior art to determine and above for sending out Send the FEC OTI (F, Al, T, Z, N) of the form that the form described by device is identical, as shown in the step 400 of Fig. 4.Lift For example, FEC OTI can be embedded in FLUTE conversation description, or FEC OTI may be encoded in URL, maybe can lead to Cross SDP message and obtain FEC OTI.In step 410, receptor checks whether to receive more coded symbols, and The step for that receptor can resting on, until receptor receives another coded symbols, (in said case, receptor continues Continuous proceed to step 430), or receptor determines and will not receive more coded symbols, in said case, receives Device proceeds to step 420, and attempts to use other method (such as, to use the HTTP to file repair server to ask Ask) recover file, receptor may wait for another session to receive more coded symbols after a while, or receptor can be determined Surely file cannot be recovered.
When another coded symbols can use, in step 430, receptor determines the UFSIC of coded symbols, and connects Receive the value of coded symbols.In step 440, receptor number based on source block Z and UFSIC, calculate A=C mould Z, and B=lower limit (C/Z), and in step 450, (SBN, the ESI) of coded symbols is set as (A, B) by receptor, And in step 460, the value of receptor storage coded symbols and (A, B) are for file access pattern.In step 470, Receptor determines whether there is the coded symbols received that be enough to recover file, and if it is, then continue into Row recovers file in step 480, and if it is not, so proceeds to receive more warp knit in step 410 Code sign.
Many changes of receptor basic UFD method can be there are.For example, receptor can at least some in bag Receiving more than one coded symbols in bag, in said case, FEC payload ID may be set to be contained in bag Additional symbols in the UFSI of the first coded symbols, and bag can have continuous print correspondence UFSI value.For example, as Fruit carries three coded symbols in bag, and first this kind of symbol has UFSI=4, and 234, then other two warps Coded identification can respectively have UFSI4, and 235 and UFSI4, UFSI entrained in the symbol of 235, and bag may be The UFSI=4,234 of the first coded symbols.As the example of other replacement scheme, receptor can predefine attempt extensive Receive how many coded symbols before again.As another example, receptor can carry out determining whether to have been received by enough It is used for recovering certain process specific to FEC code of the coded symbols of file.As another example, can be not extensive UFSI value is directly used in the case of producing the intermediate steps of (SBN, ESI) value during Fu.As another example, file Recovery can occur with the reception of coded symbols simultaneously.As another example, the FEC OTI of other form can be used Information.
The technology described in basic UFD method and [RaptorQ-Spec] that combines is for determining that source block and sub-block structure carry Many advantages are supplied.For example, for launching being identified previously by the combination of SBN and ESI of the purpose of file The symbol being referred to as source symbol in method can be considered the file symbol that identified by UFSI when using basic UFD method. The size (based on eight bit byte) making F be armed file, and make T be when launch file time for FEC coding/solve The symbol size of code purpose, and therefore the KT=upper limit (F/T) is the total number of the symbol in file, wherein the upper limit (x) is greater than Or the smallest positive integral equal to x.
When determining source block structure and sub-block structure described in [RaptorQ-Spec], and use described above Basic UFD method by the mark of symbol from (SBN, ESI) form be converted to UFSI form and from UFSI form change During for (SBN, ESI) form, the scope of the UFSI of file symbol is 0,1,2 ..., KT, and from any repairing of file generation Complex symbol will have the UFSI in scope KT+1, KT+2 etc..This characteristic allows by the UFSI comparing symbol simply Determine that symbol is the part of original document or the reparation symbol produced from file with value KT.This situation can be useful, (such as) allow the receptor not supporting fec decoder based on the UFSI value carried in bag, and KT value based on file, really Which symbol fixed is the part (and the position in file) of original document, and which symbol can be ignored as repairing symbol.
Fig. 5 illustrates an example, and the most in the case, file size is F=28,669 eight bit bytes, symbol Number size is T=1,024 eight bit byte, and the therefore KT=upper limit (F/T)=28.In Figure 5, the symbol of file (SBN, ESI) sign is showed in top, and each of which row corresponds to source block, and every string is corresponding to having the symbol of identical ESI value. The corresponding UFSI of symbol indicates and is showed in bottom.In the case, there is the symbol of UFSI=27 (that is, relative to UFSI The 28th symbol indicated) make its last (KT*T)-F3 eight bit byte use for the purpose of FEC encoding and decoding Zero fills up, but need not launch these last three eight bit bytes filled of this symbol.In this example, have UFSI28 or any coded symbols more than UFSI28 are to repair symbol, wherein have the warp knit code symbol of UFSI28 Number being to produce from the source block with SBN=3, the coded symbols with UFSI29 is to produce from the source block with SBN=4 Raw, the coded symbols with UFSI30 is to produce from the source block with SBN=0, etc..Skill such as art It will be recognized that there is other advantage of many of this characteristic in art personnel.
Another advantage of basic UFD method is, if coded symbols is (that is, to press by the order defined by its UFSI UFSI order 0,1,2,3,4......) send, then the coded symbols of Z source block is by staggered sequence transmission (i.e., First send Z the coded symbols with ESI0 from each in Z source block, then send from Z Z the coded symbols with ESI1 of each in the block of source, etc.).Transmitting for great majority, this simply sends Order is enough and preferred.But, the situation in a certain cycle that may be Tong Bu with the number Z of source block in packet loss experience Under, potential more preferably order of transmission is the random permutation continuous coded symbols of Z UFSI before sending coded symbols Each set, i.e. send by random permutation order and there is front Z the coded symbols of UFSI0 ..., Z-1, and Then following Z the coded symbols with UFSI Z ..., 2*Z-1 is sent by random permutation order, etc..Logical Cross this to describe, it should be appreciated that " at random " can comprise pseudorandom, unless otherwise instructed.
Basic UFD method is used to provide the many additional advantage compared in itself previously known method.For example, use is worked as During including FEC payload ID of SBN and the ESI field of predetermined size, there is the most predetermined number The coded symbols that the predetermined number of individual possible Kuai Huomei source, source block is possible.For example, 32 FEC are produced The number of possible source block is limited to 256 by 8 SBN and 24 ESI of payload ID, and by the possibility of every source block The number of coded symbols be limited to 16,777,216.Alternatively, FEC payload ID including UFSI field only limits The sum of the possible coded symbols of file processed, it is independent of the source block structure of file.For example, when using generation During 32 UFSI of 32 FEC payload ID, the sum of the producible coded symbols of file is 4,294,967,296, the quantity of its source block being divided into independent of file, and independent of literary composition in the case of using sub-block The sub-block structure of part.Therefore, if the size of symbol is 1,024 eight bit byte, then in this example, file is big The little 4GB that may be up to, and the number of coded symbols can be 1,024 times of file size, it is divided independent of file Become a source block, 16,384 source blocks or 4,194,304 source blocks.As another example, file size can be 2TB, And the number of coded symbols can be the twice of file size.In all cases, if using sub-block structure, then literary composition The number of the producible coded symbols of part is independent of the sub-block structure of file.
General file transmission method for unequal error protection document delivery services
Most of earlier file transmission methods do not support that unequal error protection (" UEP ") file transmits.There are some previous Method, such as, the method currently specified in ISDB-Tmm (Terrestrial Mobile Multimedia) standard, described prior method makes By the method described in [LDPC-extension], described method is by changing the reality of the different piece in order to encode file FEC code supports UEP.In addition to must change the inferior position of actual FEC code when using UEP, another inferior position is The protection that thus etc. method provides is nowhere near ideal.
As an example, it is considered to result is showed in the example in the Fig. 6 of [LDPC-extension].In those examples, exist by The size sent in bag is 1, two parts of the file of 000KB, each 1KB symbol that includes: first of file Divide and there is size 30KB, and by 100 odd-even checks or reparation bag protection, and the Part II of file is 970KB, And send 1,000 source bags and 1,000 odd-even check bags altogether for file.Due to two problems, the guarantor provided Protect the ideal that is nowhere near.The FEC code (based on [LDPC-RFC-5170]) that one problem is used usually needs significantly Receive expense with Restorer varieties block, i.e. need to receive the bag more than the source bag in file and recover file.The Second Problem side of being Method substantially use with for sending and protecting the set of the independent bag of set of bag of Part II of file to send and protect Protect the Part I of file.For Second Problem, in the middle of 130 bags that the Part I for file sends, receive 30 The variance of individual bag can be big, this is because the Part I of file is sent by this peanut bag.
Can be improved the UEP file delivery method described in [LDPC-extension] by extension, described extension is at this Literary composition is referred to as " simple UEP " file delivery method.Simple UEP file delivery method uses for file transmission Prior art, and the priority of part based on file different protective numbers uses for every part of file and by file Part transmit as single file, and then can send the signal that logic between the part of file connects, Receptor be will be appreciated by part that transmitted file is same file.For example, simple UEP file delivery method [RaptorQ-Spec] in example above can be used by sending 130 bags of total to transmit the front 30KB portion of file Point, each in bag contains the coded symbols that size is 1,024 eight bit byte produced from Part I, and then 2nd 970KB part of file can amount to 1870 bags by sending and transmit as individual files, each in bag Person contains the coded symbols that size is 1,024 eight bit bytes produced from Part II.Therefore, for as individually literary composition Two parts of the file that part sends send and amount to 2,000 bags.Simple UEP file delivery method is relative to [LDPC- Extension] described in the improvement of method, this is because unmodified FEC code self, and be because (such as Figure 10 herein Shown in) under the conditions of different packet loss, the transmission performance of two parts of file is better than shown in the Fig. 6 of [LDPC-extension] Performance.
One of difference may have and be better than by the source FEC code that is because in [RaptorQ-Spec] specifying The recovery characteristics of FEC code specified in [LDPC-RFC-5170].But, simple UEP file delivery method still meets with By Second Problem as described above.
[PET] and [PET-patent] provides the method for the potential improvement for providing UEP document delivery services, the most often The coded data of the specified amount of one priority based on described part including the every part from file.[PET's] It is directly incorporated into the coded symbols of a size suitable of the every part for comprising file in each packet, and then wraps The including of every part containing file (SBN, ESI) to independent FEC payload ID.But, the method is for several Reason rather than favourable.
For example, the most negative as the FEC of SBN and the ESI field including predetermined size using every part When carrying ID, there is possible Kuai Huomei source, the source block of the most predetermined number in advance in the every part for file Ascertain the number a possible coded symbols.For example, 8 SBN and 24 ESI of each in d part Producing (32*d) position FEC payload ID, the number of the possible source block of every part is limited to 256 by it, and by every source block The number of possible coded symbols be limited to 16,777,216.If additionally, for each in d part, FEC Payload ID size is 32, then this situation will mean, just for FEC payload ID in each bag Header, FEC payload ID of all parts in each bag adds up to 32*d position, such as, if d=10, that 32*d is 320, or equally 40 eight bit byte.
The expansible basic UFD method for file transmission, to provide unequal error protection As described in detail below (UEP) document delivery services, it provides the significant advantage comparing previous UEP file delivery method.In this article, these Extended method is referred to as " UFD-UEP " file delivery method.These UFD-UEP file delivery method can use [PET] The certain methods in method described in [PET-patent].
Example UFD-UEP file delivery method now be will be described in more detail.In this method, size is F's by transmitter File division becomes size to be F0、F1、...、Fd-11 part of d >, and therefore F equal to i FiSummation.Send out Send device that bag size T is divided into size be T0、T1、...、Td-1D part, and therefore T equal to i TiTotal With.This segmentation of T is based on F0、F1、...、Fd-1Priority with respective file part.Ratio Fi/TiDetermine Assuming that use preferable FEC code to need to receive in the case of protecting part i of file as a source block and how much wrap with extensive Part i of multiple file, and therefore ratio Fi/TiThe least, the priority of part i of file is the highest.In practice, may Need slightly above Fi/TiIndividual bag is to recover part i of file, such as, this is because FEC code is not preferable and can represent A certain reception expense;Or because the part of file is divided into multiple sources block, and the coded symbols of some source blocks is to be higher than The speed of other source block is lost;Or because Fi/TiIt it not integer.Example as UEP, it is assumed that F=1MB, T=1,024 Eight bit byte, d=2, F0=32KB, F1=F-F0=992KB, and T0=64 eight bit bytes, T1=T-T0=960 eight bit words Joint.In this example, F0/T0=512, and therefore it is desirable that receive 512 bags to allow to recover the part 0 of file, and F1/T1=1,058.13, and therefore it is desirable that receive 1,059 bag to allow to recover the part 1 of file.Therefore, real at this In example, the part 0 of file can be recovered from the bag of the half of the bag required for the rough part 1 for recovering file.
Notice, in this example, if not using UEP, i.e. d=1, and therefore F0=F=1MB, and T0=T=1,024 Eight bit byte, then need F0/T0=1,024 bags recover file.Therefore, previously UEP described in paragraph In example, the recovery of the part 1 of file needs the bag more than not using bag during UEP, and this is attributed to the portion of file Divide the higher priority of 0.Substantially the analysis and research accepted or rejected this can be found in [PET].
For transmitter UFD-UEP method, exist based on F0、F1、...、Fd-1Priority with different file parts Produce the partitioning portion T of T0、T1、...、Td-1Various modes.Notice, if selecting TiSo that Fi/Ti≈ F/T, So part i of file is identified have average priority, and the priority of part i will be respectively depending on Fi/Ti< F/T Or Fi/Ti> F/T and of a relatively high or relatively low.
Referring now to Fig. 6, the transmitter UFD-UEP method for producing FEC OTI is described.Given d, F0、F1..., Fd-1、T0、T1、...、Td-1, the value of Al, WS, can be used independently existing method (such as, use [RaptorQ-Spec] Method described in 4.3rd chapter) calculating as usual is applied to the FEC OTI of each in d part of file, i.e. For each i=0 ..., d-1, transmitter can produce the FEC OTI for file part i, described FEC OTI and determine How to use the method described in (such as) [RaptorQ-Spec] the 4.3rd chapter that file part i is divided into source block and sub-block, Described method is by FiAs file size, and by TiSymbol size as the information in order to carry part i in each packet. Transmitter therefore other parts with file produce the FEC OTI of part i for file independently.This process is herein In Fig. 6 step 600 in show.
Transmitter also can produce following each: part i of file is divided into source block and sub-block, and part i of file (SBN, the ESI) of coded symbols with how to use existing method (such as, [RaptorQ-Spec] the 4.4th chapter and therein the Method described in 5 chapters) produce the mapping between coded symbols from part i of file.These UFD-UEP methods It is applied independently for part i of file by the other parts with file, and therefore, the different piece of file can have difference Source block and sub-block structure, and exactly, different number the sources symbol of every source block can be there is between the different piece of file Number and different number sources block, this is because described method is independently of what every part of file was applied.
Alignment factors A l is identical preferably for all parts of file, and exactly, for every a part of i, Value TiBe the multiple of Al be preferred.If additionally, (such as) uses described in [RaptorQ-Spec] the 4.5th chapter Method derives FEC OTI, then use Al when deriving source block and sub-block structure for each in the part of file It is preferred with the identical value of WS.For Al use identical value ensure that can at receptor on a memory with Al eight The multiple of bit byte alignedly decodes, and uses identical value to ensure that being in random access memory at receptor deposits for WS Needing the largest block size decoded in reservoir (RAM) is identical for all parts of file.Exist for file not Use different WS value to derive FEC OTI with part to be preferably some application, such as, use less memorizer at needs In the case of recovering the higher priority part of file.
Can exist for different piece using different is favourable some application to quasi-divisor.For example, high priority portion Divide and by having the low end-receiver of the memorizer that 4 eight bit bytes are directed at and can have the height of the memorizer that 8 eight bit bytes are directed at End-receiver decodes, and low priority partition only can be decoded by high end reception device.In this example, for high priority portion Divide and use Al=4 so that it can be favourable that low end-receiver can decode these parts effectively, and for low priority portion It can be favourable for dividing use Al=8, this is because compared with Al=4, high end reception device can in the case of Al=8 more Effectively decode these parts.
The corresponding FEC OTI produced by the transmitter UFD-UEP method specific to file part i includes Fi、Ti, Zi, Ni, wherein ZiIt is the number of the source block that part i of file is divided into, and NiIt it is each source block institute of part i of file The number of the sub-block being divided into.Therefore, generally speaking, the FEC OTI that transmitter UFD-UEP method produces for file Comprise the steps that (d, Al, F0、T0、Z0、N0、F1、T1、Z1、N1、...、Fd-1、Td-1、Zd-1、Nd-1)。FEC OTI Other version be also available, such as, when d fixes, and when therefore need not list in FEC OTI clearly, Maybe when using other method to indicate source block structure and sub-block structure (if you are using).
Transmitter uses UFD-UEP method to assemble every a part of warp knit code symbol of file to be sent in bag Number, and bag FEC payload ID include UFSI value C.When bag will be sent time, transmitter determine will act as bag UFSI value C of FEC payload ID, as shown in the step 610 of Fig. 6.The UFSI value (such as) that will use Can be continuous print, such as, UFSI value 0,1,2,3 ..., etc..For given UFSI value C, in the part of file Size in the i-th part being placed on bag is T by the bag of iiCoded symbols there is SBNAiAnd ESIBi, its It is calculated as Ai=C mould Zi, and Bi=lower limit (C/Zi), as shown in the step 620 of Fig. 6.For i=0 ..., d-1, Produce these d coded symbols for each in d part of bag, and then in bag by UFSIC and collection Closing size is that these d coded symbols of T send together, such as the step 630 of Fig. 6, as shown in 640 and 650. Transmitter UFD-UEP method continues produce and send encoded bag, as shown in the decision carried out in the step 660 of Fig. 6.
Referring to Fig. 7, receptor UFD-UEP method is described.Receptor can use prior art to determine as described above FEC OTI (d, Al, F of the situation same format with transmitter0、T0、Z0、N0、F1、T1、Z1、N1、...、 Fd-1、Td-1、Zd-1、Nd-1), as shown in step 700 of fig. 7.For example, FEC OTI can be embedded in FLUTE In conversation description, or FEC OTI may be encoded in URL, maybe can obtain FEC OTI by SDP message.In step In 710, receptor checks whether to receive more bag, and the step for that receptor can resting on, until receptor receives To another wrap (in said case, receptor proceeds to step 730), or receptor determine will not receive more Bag, in said case, receptor proceeds to step 720, and determines and recover enough parts of file and stop Stop, or attempt to use other method (such as, using the HTTP request to file repair server) to recover file Extra section, or receptor may wait for another session to receive more bag after a while.
When another bag is available, in step 730, receptor determines the UFSIC of received packet, and for each I=0 ..., d-1, extracting size from bag (for each i=0 ..., d-1) is TiCoded symbols.In step 740 In, for each i=0 ..., d-1, receptor number based on source block ZiAnd UFSIC, calculate Ai=C mould Zi, and Bi=lower limit (C/Zi), and in step 750, (SBN, the ESI) of the coded symbols of part i is set as (A by receptori, Bi), and in step 760, the value of the coded symbols of receptor storage part i and (Ai, Bi) for recovering file Part i.In step 770, receptor determines whether there is enough in order to recover file for each i=0 ..., d-1 The coded symbols received of part i, and if it is, then proceed to recover file in step 780 Part i, and if it is not, so proceed to receive more bag in step 720.
Many changes of receptor UFD-UEP method can be there are.For example, transmitter can at least some in bag Bag sends more than one coded symbols of every part of file, and therefore receptor can at least some bag in bag More than one coded symbols of every part of middle reception file, in said case, FEC payload ID can set It is set to the UFSI of the first coded symbols corresponding to the every part being contained in bag, and the every part in bag is extra Symbol can have continuous print correspondence UFSI value.For example, if carrying three of documentary every part in bag Coded symbols, and the first symbol of every part is corresponding to UFSI=4,234, then other two warp knits of every part Code sign can correspond respectively to UFSI4, UFSI entrained in 235 and UFSI4,235, and bag UFSI=4,234.
As the example of other replacement scheme, receptor can predefine coded symbols to be received before attempting to recover Quantity, maybe can calculate the packet loss statistical data during session, and determine to attempt to recover file based on this statistical data Which part.As another example, receptor can carry out determining whether to have been received by enough for recovering file Certain process specific to FEC code of the coded symbols of every part.As another example, can be not at each literary composition UFSI value is directly used in the case of the recovery process of part part produces the intermediate steps of (SBN, ESI) value.As another Example, the recovery of the part of file can occur with the reception of coded symbols simultaneously.
As another example, the FEC OTI information of other form can be used.For example, can independent of other parts, In FEC OTI, basic UFSIBU is specified for part iI, basic UFSI BUICan use as follows: be contained in The UFSI used by FEC transmitters and receivers is U+BU by the coded symbols of part i in bagI, wherein U It is UFSI entrained in the bag carry coded symbols.If it is therefoie, for example, bag carries U=1,045, and portion Dividing the basic UFSI in the FEC OTI of i is BUi=2,000,000, then coded symbols UFSI is 2,001,045.
Basic UFSI is used to have some advantages.For example, will only launch for different piece repair a symbol (for The reason being described later on) in the case of, set BUi=KTiCan be favourable, wherein KTiIt it is the file symbol in part i Number number.In the case, the sequence of the UFSI in the packet sequence sent can be 0,1,2,3 etc., but, For every part, will only send the reparation symbol produced from that part in bag.
This paragraph describes another example advantage of the use of basic UFSI.[FLUTE]、[ALC]、[LCT]、[FEC BB] Described in protocol groups by the connection object identifier of also referred to as TOI and file to be conveyed or the FEC OTI of object It is associated.Possibly: the coded symbols of same section can send at different time or in different sessions, and can It is associated from different TOI.Also, can send start with UFSI=0 for the bag being associated from each different TOI Encoded bag be favourable.Specify basic UFSI as the portion of FEC OTI by having separately for every part Point ability, the different basic UFSI of every part can with the coded symbols to be sent of file about each TOI It is associated, and is not for different TOI and sends the coded symbols repeated.For example, can be associated with TOI=1 And the bag being associated with TOI=2 sends the coded symbols of same section, the part being wherein associated with TOI=1 Basic UFSI be set as 0, and the basic UFSI of the described same section being wherein associated with TOI=2 is set as 1,000,000.Then, the encoded bag of TOI=1 and TOI=2 can be containing UFSI0, UFSI1, UFSI2 etc. Sequence, and in the middle of the sent coded symbols being associated with two TOI, there will be no the warp of the repetition of institute's transmitting portion Coded identification, as long as the coded symbols for the part transmission with TOI=1 is less than 1,000,000.Replace Different basic UFSI is specified, it is possible to advantageously have by all parts use in FEC OTI for an often part Basic UFSI, this is because this can reduce the number transmitting the eight bit byte required for FEC OTI, and is shared in simultaneously FEC OTI specifies for every part many advantages of the most basic UFSI, is especially combining what the method used When FEC code is the additional FEC code of information (the such as additional FEC code of information etc. described in Luby I), this is because In the case, the effective range of the UFSI of all parts can be very big.
Technology described in combination UFD-UEP method and [RaptorQ-Spec] is for determining that source block and sub-block structure carry Many advantages are supplied.Exactly, being had superiority for UFD-UEP method of basic UFD method is also set up. For example, the elder generation identified by the combination of SBN and ESI to launch the purpose of the one in the UEP part of file The symbol being referred to as source symbol in front method can be considered being identified by UFSI of those parts when using UFD-UEP method File symbol.Notice KTi=the upper limit (Fi/Ti) be file part i in the total number of file symbol.When such as (example As) described in [RaptorQ-Spec], the every part for file determines source block structure and sub-block structure, and uses The mark of the symbol of the part of file is converted into UFSI from (SBN, ESI) form by the UFD-UEP method described by literary composition Form and when UFSI form is converted into (SBN, ESI) form, the scope of the UFSI of file symbol is 0,1,2 ..., KTi, and will have in scope KT from any reparation symbol of file generationi+1、KTiUFSI in+2 grades.This characteristic permits Permitted by UFSI and KT comparing symbol simplyiValue, determines that symbol is the part of the initial protion i of file or from literary composition The reparation symbol that part i of part produces.This situation can be useful, and (such as) allows not support the receptor of fec decoder Based on the UFSI value carried in bag, and value T of every a part of i based on fileiAnd KTi, determine which part in bag Which part in part (and the position in file) containing original document, and bag is containing insignificant reparation symbol.
Fig. 8 illustrates an example, and file includes two parts the most in the case.Part I is divided into 5 Individual source block, wherein front 3 the source blocks in these source blocks each have 6 source symbols, and 2 source blocks of residue each have 5 source symbols, wherein each in these symbols has the size of (such as) 48 eight bit byte, and therefore Part I Size be 28*48=1,344 eight bit byte.Part II is divided into 4 source blocks, wherein first 3 in these source blocks Source block each has 4 source symbols, and 1 source block of residue each has 3 source symbols, wherein every in these symbols One has a size of (such as) 256 eight bit byte, and the size of therefore Part II is 256*48=3,840 eight bit bytes.
Fig. 9 illustrates the possible subpackage of the file structure of graphic extension in Fig. 8.In this example, each bag includes UFSI C, size are that (it is from first of the file structure shown in Fig. 8 based on C for the first coded symbols of 48 eight bit bytes Part produces, as previously referring to described by Fig. 6), and the second coded symbols of 256 eight bit bytes (it is based on C Produce from the Part II of the file structure shown in Fig. 8, as previously referring to described by Fig. 6).The shadow-free part of bag is taken The source symbol of the corresponding part of tape file, and shaded portion carries the reparation symbol produced from the corresponding part of file.? In this example, the minimal amount recovering the bag required for the Part I of file is 28, and recovers the Part II institute of file The minimal amount of the bag needed is 15.
Fig. 9 describes have UFSI0 ..., 28 bags of 27, and the Part I of therefore these files carried in wrapping All coded symbols be source symbol.Produced any extra bag (wherein UFSI value at least 28) will carry file The reparation symbol of Part I.
Another advantage of UFD-UEP method is, if coded symbols (that is, is pressed by the order defined by its UFSI UFSI order 0,1,2,3,4......) send, then the Z of part i of fileiThe coded symbols of individual source block is pressed Staggered sequence (i.e., first sends from ZiThe Z with ESI0 of each in the block of individual sourceiIndividual coded symbols, connects And send from ZiThe Z with ESI1 of each in the block of individual sourceiIndividual coded symbols, etc.) send.This characteristic All parts for file are all set up, even if it is also such that every part has independent source block structure.For great majority Transmission, this simple order of transmission is enough and preferred.But, may be with the number Z of source block in packet loss experienceiSynchronize The a certain cycle in the case of, potential preferable order of transmission is to send Z UFSI of random permutation before coded symbols Each set of coded symbols continuously, wherein Z is ZiMaximum (for all i=0 ..., d-1), i.e. by with Machine displacement series send front Z the coded symbols with UFSI0 ..., Z-1, and then send out by random permutation order Send following Z the coded symbols with UFSI Z ..., 2*Z-1, etc..Another potential order of transmission is to send out All coded symbols that before warp let-off coded identification, random permutation is to be sent.
UFD-UEP method is used to provide the many additional advantage compared to the simple extension of prior method or prior method. For example, UFD-UEP method uses the FEC payload id field including UFSI field, each portion of file The sum of the possible coded symbols divided only is limited by the size of UFSI field, and the source of the every part independent of file Block structure.Additionally, the use of UFSI field provides general and succinct FEC payload ID, it allows to identify simultaneously The symbol produced from the entirely different source block structure of every part of file.For example, when using 32 FEC of generation During 32 UFSI of payload ID, the sum of coded symbols producible for file is 4,294,967,296, The quantity of its source block being divided into independent of file, and for every part of file, in the case of using sub-block solely Stand on the sub-block structure of file.Therefore, if the size of the symbol of the Part I of file is 256 eight bit bytes, and literary composition The size of the symbol of the Part II of part is 1,024 eight bit byte, then in this example, the Part I of file big Little is 1GB, and the size of the Part II of file is 4GB, and then the number of coded symbols can be each Documents Department 1,024 times of the number of the source symbol divided, it is to be divided into a source block, 16,384 sources independent of each file part Block, or 4,194,304 source blocks.
The example of the improvement compared to simple UEP file delivery method that UFD-UEP file delivery method is provided is shown In Figure 11.In this example, the file of 1MB is divided into the Part I of 32KB and second of 992KB Point.For two methods, use the FEC code specified in [RaptorQ-Spec], in each bag, carry coded symbols Size be 1,024 eight bit byte, and launch total 2,048 bag.
For the simple UEP file delivery method example shown in Figure 11, it is independently processed from and transmits first of file Point and the Part II of file, the most in both cases, carry in each packet size be 1,024 eight bit byte just What a coded symbols.In 32 bags, carry the source of the Part I of file, and send containing coded symbols Amount to 128 bags.In 992 bags, carry the source of the Part II of file, and send the total containing coded symbols 1,920 bags.
For the UFD-UEP file delivery method example shown in Figure 11, process in combination and transmit file Part I and the Part II of file, i.e. the warp knit code symbol of each each included in two parts sent Number, wherein for Part I, the size of coded symbols is 64 eight bit bytes, and for Part II, encoded The size of symbol is 960 eight bit bytes.The source of the Part I of file, and all 2,048 is carried in 512 bags Include the coded symbols of Part I.The source of the Part II of file is carried (in the last bag in source in 1059 bags The coded symbols i.e. coded symbols of Part II, it is filled up with zero is that the full symbol of 992 eight bit bytes is big Little), and all 2,048 coded symbols including Part II.
Can be seen that as in Figure 11, simple UEP file delivery method and the restorability of UFD-UEP file delivery method (according to loss rate) the most identical for the Part II of file, i.e. in both cases, until connecing The loss rate of nearly 48%, all can fairly consistently recover the Part II of file.On the other hand, for the first of file For part, the restorability of UFD-UEP file delivery method is significantly better than the recovery of simple UEP file delivery method Performance: simple UEP file delivery method can as one man recover the Part I of the loss rate file less than 65%, and UFD-UEP file delivery method can as one man recover the Part I of the loss rate file close to 75%.
General file transmission method and system for bundled files transmission service
Most of earlier file transmission methods do not support that bundled files is transmitted, i.e. using multiple files as single bundled files Transmit.The direct method transmitting some files is to transmit each file independently.But, this direct method has some Shortcoming.For example, if file is little, then the protection provided is nowhere near ideal, if this is because each literary composition The number of the bag containing coded symbols of part is little, then can there is big variance in packet loss statistical data.
Figure 12 illustrates this problem.In fig. 12, the file transfer reliability of 32KB file is shown as passing The function of the packet loss percentage ratio in network during passing.In this file transmission example, symbol has a size 1, and 024, and Using the FEC code specified in [RaptorQ-Spec] is 64 coded symbols by the 32 of file source symbolic codings, and Each coded symbols is sent in individually bag.Can be seen that as in Figure 12, owing to this variance, can up to become file By loss percentage ratio during transmission much smaller than 50%.
If additionally, encode independently and launch many small documents, then packet loss during All Files can be reliably received Percentage ratio is the least.Figure 12 illustrates this characteristic when transmitting 32 files each with 32KB size, wherein The coding of each file and transmission be use with previous paragraph described in the identical parameter of parameter and only with other file On the spot perform.As can be seen, only all 32 can be reliably achieved when packet loss is below about 25% (it is far below 50%) The transmission of individual file.
Can UFD-UEP file delivery method extended below, to provide UFD bundled files transmission method.UFD bundlees File delivery method can use the method identical with UFD-UEP file delivery method, but not represents phase identical text with signal The transmission of d of part part, but represent that every part is that individual files and d file are by binding mode with signal Transmission.Assume transmitter to wish respectively providing size is F0、F1、...、Fd-1D file binding transmission.Send Bag size T is divided into size to be T by device UFD binding method0、T1、...、Td-1D part, and therefore T is equal to I TiSummation.This segmentation of T is based on F0、F1、...、Fd-1Priority with respective file.
Ratio Fi/TiDetermine and supposing that the preferable FEC code of use is to protect the situation of part i as a source block of file Under, in order to recover the quantity of the bag received required for file i, and therefore ratio Fi/TiThe least, part i of file excellent First level is the highest.In practice, it may be necessary to slightly above Fi/TiIndividual bag is to recover part i of file, such as, because FEC Code is not preferable, and shows a certain reception expense, or because the part of file is divided into multiple sources block, and some The coded symbols of source block is lost with the speed higher than other source block, or because Fi/TiIt it not integer.If it is intended to transmission The priority of All Files is identical, then set TiSo that Fi/Ti≈F/T.For both transmitters and receivers For, many details of UFD bundled files transmission method are almost identical with UFD-UEP file delivery method, and therefore It is omitted.
Expansible UFD bundled files transmission method, to provide bundled files transmission and UEP file to transmit simultaneously, i.e. Can differently set the priority of each file in binding.Additionally, UFD bundled files transmission method can be by appropriate Signaling supports that following two is transmitted: if the priorization transmission of the stem portion of the priorization transmission of multiple file and file.Lift For example, if UFD bundled files transmission method coding will be used and send three objects, then the first two object can Can be the different piece with different priorities of same file, and the 3rd object can be to have another different priorities not Same file.Based on many factors, receptor can determine which in bundled files and/or file part its hope recover, and Independent of other file or file part, only recover they's file or file part.Those skilled in the art is reading It will be recognized that the many that there is UFD bundled files transmission method may alternate version after the present invention.
Simplified example as the transmission of UFD bundled files, it is assumed that will transmit the binding of 32 files, each file has Size 32KB, each of which file is had to have equal priority.Assume T=1,024 eight bit byte.In the case, For each i=0 ..., 31, TiValue=32 eight bit byte.Each bag is by containing 32 of each in 32 files The UFSI of 32 coded symbols in the coded symbols of eight bit byte, and identification bag.In this example, will exist Containing 1,024 bag of the source symbol from each in 32 equal sizes files, and these bags are that UFSI is 0 Bag in the scope of 1,023.Assume in this example, produce 1,024 extra reparation symbol for each file, And send described extra reparation symbol in the UFSI extra 1,024 bags in the scope of 1,024 to 2,047.
Figure 12 illustrates the recovery characteristics of this UFD bundled files transmission example according to packet loss.In this example, For close to 50% loss rate, UFD bundled files transmission method can be used reliably to recover all 32 files, This loss rate is to allow reliably to transmit all 32 files compared to when using the separately encoded of each file and send About 25% the essential improvement of loss rate.
The method supported for the primary HTTP of clean culture reparation request
File or file part can be organized as and can be used as " the HTTP file " with the URL being associated, described " HTTP file " can be used by standard http network cache server with storage file or file part, and carries For receptor to file or the access of file part.By the file that can be used as HTTP file or the Documents Department of its original order Divide herein referred to as " original order HTTP file ".The primary HTTP being commonly used for clean culture reparation request props up The symbol of the source block to HTTP file and the reparation request of subsymbol can be translated as by the method held based on SBN and ESI Standard HTTP eight bit byte range of requests in HTTP file (often referred to as has the HTTP portion of specified bytes scope Divide GET request).This situation enables standard http network cache server to service these reparation requests, Thus avoid large scale deployment and will understand how to become HTTP file division the special of source symbol in source block and source block The needs of http network cache server.
Under these situations, when system FEC code in use time, the most in a session some (such as, Broadcast/multicast session) middle transmission repairs symbol, this is because this situation allows receptor to simply request in clean culture reparation is asked Source symbol.This situation has the simple rearrangement having only to HTTP file or HTTP file as described in more detail below Conversion provides the advantage to the clean culture remediation server that can be standard http network cache server, so that definition The logistic work of HTTP file and distribution HTTP file is simpler, this is because these logistic works are compiled independent of FEC Code.Another advantage is, if not having transmission source symbol in a session, then because active symbol " lacks ", receives Device can ask any sequence of source symbol in clean culture reparation is asked, and this situation can be preferably, this is because this situation permits Permitted the reparation request of the continuous sequence to source symbol.As an example it is assumed that use the FEC code with preferable recovery characteristics, And the source block of a part includes 1,000 source symbol, and receive 700 reparation symbols (even if repairing symbol for source block In some can lose in the transmission, and the pattern of ESI repairing symbol therefore received may be far from continuously ).Then, receptor can ask front 300 continuous source symbols of source block in clean culture reparation is asked, and is accorded with in these sources Number with 700 repair symbol combination with Restorer varieties block.If source symbol is continuous print in HTTP file, then can be by Single HTTP eight bit byte range of requests is in order to ask and to receive all 300 continuous source symbols.Receptor not necessarily needs Prefix request to be carried out (that is, the request of byte setting number started from the first byte to file), but in some feelings Under condition, this can be simpler.
Request is for given number byte or symbol.In some cases, receptor is by based on the reparation symbol received Number number and the number of source symbol that is contained in file to be received or object of expection determine source symbol to be asked Number.In other cases, receptor may perform scheduling operation, and wherein receptor determines how and only uses it to connect The reparation symbol received is decoded, and therefore it could be noted that need particularly number source symbol.For example, repair Some in symbol are probably other redundancy repairing symbol, in said case, it may be necessary to more source symbol.? Under other situation, result is probably needs less source symbol.
Receptor can based on FEC OTI, by original order HTTP file corresponding to specific (SBN, ESI) to source The request of symbol is translated as HTTP eight bit byte range of requests.As an example it is assumed that the FEC OTI of file be (F, Al, T, Z, N), and be A by the SBN of requested source symbol, and the ESI of described source symbol is B, and rise for simple See, it is assumed that N=1, i.e. in this example of file structure, source block will not be further divided into sub-block.Then, connect Receipts device can apply the method described in (such as) [RaptorQ-Spec] the 4.4th chapter, to determine (KL, KS, ZL, ZS), The most front ZL source block has KL source symbol, and ZS source block of residue has KS source symbol.Then, based on A, B and symbol size T, receptor can determine that symbol beginning eight bit byte in file in source indexes as illustrated in equation 1, Wherein symbol end eight bit byte index in file in source is EI=SI+T.Then, receptor can use source symbol Standard HTTP eight bit byte range of requests.
SI=T* (KL*min{A, ZL}+KS*max{A-ZL, 0}+B) (equation 1)
As skilled in the art will recognize, there are the many extensions to these methods and improve.For example, If asking multiple continuous source symbol in the case of not using sub-block from original order HTTP file, then can carry out Single HTTP eight bit byte range of requests.As another example, in addition to original order HTTP file or replace former Beginning order HTTP file, http network cache server can have containing the file repairing symbol, or can be Extension original order HTTP file repairs symbol to contain, and receptor can use and be similar to method described herein Method carry out to repair symbol HTTP eight bit byte range of requests.As another example strengthened, can use such as The similar approach that those skilled in the art will realize that, extends these methods to dispose the situation using sub-block.Citing For, receptor can use the method described in [RaptorQ-Spec] the 4.4th chapter to determine (TL, TS, NL, NS), Wherein front NL the sub-block of source block has size TL*Al, and residue NS the sub-block of source block has size TS*Al.Connect , based on A, B and symbol size T, receptor can determine that the symbol with N number of subsymbol corresponding to source symbol exists Beginning in file and end eight bit byte index, and use standard HTTP eight bit byte range of requests to carry out these The request of eight bit byte.
As another example, receptor can based on FEC OTI, by for file or file part corresponding to specific UFSI The request of source symbol be translated as HTTP eight bit byte range of requests.
Following methods can greatly strengthen and be recovered HTTP file by receptor use standard HTTP bytes range request The efficiency of symbol, and use standard http network cache server the eight bit byte scope asked to be asked simultaneously Ask and be delivered to receptor.
Support that the direct method of HTTP eight bit byte range of requests as described is to use original order HTTP file. The method has and need not to convert that original document or file part produce for http network cache server is former The advantage of beginning order HTTP file, but described method tool is likely to require many different HTTP eight bit byte range of requests Ask the inferior position of source symbol (even when simply requesting continuous source symbol for each source block).This situation has at least two Reason: (1) there may be multiple sources block, and disappearance is from the source symbol of each source block, in said case, it may be necessary to Independent eight bit byte range of requests for each source block;(2) there may be every source multiple sub-block of block, and the most even from one Individual source block asks single source symbol to be likely to need multiple HTTP eight bit byte models of the multiple subsymbols to composition source symbol Enclose request, this is because the subsymbol of source symbol may be discontinuous in original order HTTP file.
A kind of favorable method supporting HTTP eight bit byte range of requests as described above is primarily based on original document or literary composition The FEC OTI of part part, reorganizes file or file part as new form, referred herein as " UFSI order HTTP file ".The method is useful when there is multiple sources block and/or every source multiple sub-block of block.UFSI order HTTP The order of the data in file be by the file symbol with UFSI0, there is UFSI1 file symbol, there is UFSI The order of the file symbol etc. of 2, i.e. the order of the data in UFSI order HTTP file is organized as what basis was incremented by Continuously UFSI (as determined by FEC OTI) and the file symbol that sorts.URL can be with UFSI order HTTP file phase Association, and URL can be supplied to http network cache systems.Receptor then can use HTTP eight bit word Adjusting range is asked, and asks the part of UFSI order HTTP file when needed.The one of UFSI order HTTP file Individual advantage is, if each that receptor is from the block of source receives about the same number and repairs symbol, then obtain enough In order to recover original document or file part source symbol required for the number of HTTP eight bit byte range of requests can be Little, such as, if receiving identical number for each source block to repair symbol, then a HTTP eight bit byte Range of requests can be enough.For example, front L*T*Z the continuous eight bit byte to UFSI order HTTP file The each that just be enough to from Z source block of original document or file part of request receive front L the source that size is T and accord with Number.If receiving K-L the reparation symbol for each in Z source symbol in one or more sessions, And if FEC code has preferable recovery characteristics, then L*T*Z eight received from HTTP eight bit byte range of requests Bit byte just be enough to fec decoder HTTP file, the most in this example, it is assumed that K is each in Z source block In the number of source symbol.
Another favorable method supporting HTTP eight bit byte range of requests as described above is primarily based on original document or literary composition The FEC OTI of part part, reorganizes file or file part as different formats, referred herein as " SS order HTTP file ".The method is useful when there is every source multiple sub-block of block, this is because in the case, each source accords with Number it is not the continuous part of original document or file part, i.e. the subsymbol of source symbol may be interspersed in be arranged by original document In the source block of sequence.The order of the data in SS order HTTP file is the active symbol by the first source block, then second The active symbol of source block, then the 3rd source block the order of active symbol etc., i.e. in SS order HTTP file The order of data is organized as the source symbol sorted according to the continuous ESI order being incremented by the block of source, and by incremental The concatenation of the source block of SBN order continuously, as determined by FEC OTI.URL can be with SS order HTTP file phase Association, and URL can be supplied to http network cache systems.Receptor then can use HTTP eight bit word Adjusting range is asked, and asks the part of SS order HTTP file when needed.If each from the block of source of receptor Person receives different number and repairs symbol, then SS order HTTP file is especially advantageous.For example, if Exist and each there are two source blocks of 1,000 source symbol, and if receptor receive from one or more sessions To 900 reparation symbols for the first source block and 100 reparation symbols for the second source block, then receptor can be right Front T*100 the eight bit byte of SS order HTTP file carries out a request, and receives for the 100 of the first source block Individual source symbol, and T*1,000+1 to T*1,900 eight bit byte of SS order HTTP file can carry out separately by receptor One request, and receive 900 source symbols for the second source block, the most in this example, T is the symbol of two source blocks Size (based on eight bit byte).
It is also possible to use the combination of two methods just described, i.e. UFSI order HTTP can be made by different URL File and SS order HTTP file can be used for receptor, and then receptor can use two different-formats The combination of the HTTP eight bit byte request of HTTP file.For example, if there is each having 1,000 source symbol Number 10 source blocks, and if in one or more sessions, in front 8 source blocks each receive 800 Individual reparation symbol, receives 820 for the 9th source block and repairs symbol, and repair for the 10th source block reception 500 Complex symbol, then receptor may carry out the HTTP eight bit byte range of requests to UFSI order HTTP file, with Receive for 200 source symbols of each in 10 source blocks, and carry out SS order HTTP file extra HTTP eight bit byte range of requests, to receive extra 300 the source symbols for the 10th source block.In this example, Receptor can receive unwanted 20 the source symbols for the 9th source block (assuming that have the FEC of preferable recovery characteristics Code), but in some cases, use small number HTTP eight bit byte range of requests to ask more than some source blocks Than the just required source number of symbols asking each source block, (this can need greatly the eight bit byte of minimum required eight bit word joint number The different HTTP eight bit byte range of requests of number much) more efficiently.
Those skilled in the art will realize that and there are the many changes about these methods.For example, HTTP File, UFSI order HTTP file and SS order HTTP file all can be used for asking.As another example, SS Order HTTP file can be separated, and can be used as many HTTP files, has this type of HTTP for each source block File.As other example of variant, the method in addition to method based on HTTP and agreement and agreement may be used, Such as may use method based on RTP/UDP, or the proprietary protocol etc. set up based on UDP.
Hardware system and example
Method and system as described above can with hardware, software and/or containing program code or other instruction by appropriate group The computer-readable media knitted is implemented.Some examples of the system that may use above teachings are provided in this article.
Figure 13 is the block diagram of the communication system 1300 using multilevel decoding, and communication system 1300 can be as the most herein The part of described file transfer system is in order to send bag.Use other code and/or hardware alternatively, of course.
In communication system 1300, input file 1301 or inlet flow 1305 are provided to incoming symbol generator 1310. Incoming symbol generator 1310 from input file or miscarriage one or more incoming symbols raw (IS (0), IS (1), IS (2) ...) sequence, each of which incoming symbol has value and position (being expressed as parenthetic integer in fig. 13). As explained above, the probable value (that is, its alphabet) of incoming symbol is typically have 2MThe alphabet of individual symbol so that Each incoming symbol decodes for M position of input file.Value M is typically to be come by the purposes of communication system 1300 Determine, but general-purpose system may comprise the symbol size for incoming symbol generator 1310 and input so that M can be not Change between same purposes.The output of incoming symbol generator 1310 is provided to encoder 1315.
Static key generator 1330 produces static key S0、S1... stream.The number of produced static key is the most limited System, and depend on the specific embodiment of encoder 1315.The generation of static key is described in greater detail below.Dynamic key is produced Raw device 1320 produces the dynamic key of each output symbol produced by encoder 1315.Produce each dynamic key so that Most of dynamic key of identical input file is unique.For example, Luby I describes spendable key generator Embodiment.The output of dynamic key generator 1320 and static key generator 1330 is provided to encoder 1315.
According to each key I provided by dynamic key generator 1320, encoder 1315 provides from by incoming symbol generator Incoming symbol produce there is the output symbol of value B (I).The operation of encoder 1315 is described in more detail below.Each The value of output symbol is based on its key, based on one or more in incoming symbol and may calculate from incoming symbol The a certain function of one or more redundant symbols obtained produces.Cause incoming symbol and the redundancy of specific output symbol " symbol being associated " that be integrated into herein referred to as output symbol of symbol or simply referred to as its " related compounds ".According to The process being described in more below is to carry out function (" value function ") and the selection of related compounds.Generally, but the most always, M It is identical for incoming symbol and output symbol, i.e. incoming symbol and output symbol are all carried out for same number position Decoding.
In certain embodiments, the number K of incoming symbol is used to select related compounds by encoder 1315.If in advance Do not know K, such as when input is stream transmission file, then K may simply estimate.Value K is also possible to by encoder 1315 use, and are the incoming symbol produced by encoder 1315 and any intermediate symbols distribution memorizer.
Output symbol is supplied to transmitter module 1340 by encoder 1315.Transmitter module 1340 is further provided with from dynamic key The key of this type of output symbol each of generator 1320.Transmitter module 1340 is launched output symbol by channel 1345 and is arrived Receiver module 1350, and depend on that used keying method, transmitter module 1340 are also possible to launch about being launched Certain data of the key of output symbol.Assuming that channel 1345 is erasure channel, but this not proper for communication system 1300 When operation is for required.
Module 1340,1345 and 1350 can be any suitable nextport hardware component NextPort, component software, physical medium or it is any Combination, as long as any desired data that transmitter module 1340 is suitable for by output symbol and about the key of output symbol is launched To channel 1345, and receiver module 1350 is suitable for receiving symbol and potentially about certain of key of symbol from channel 1345 Data just may be used.Value K, or can be at encoder 1315 in order to can be sent by channel 1345 in the case of determining related compounds Preset value K in the case of reaching an agreement with decoder 1355.Other element is showed in Figure 13 (and the most other Place, in spite of being described as module, step, process etc., is all used as hardware, software and/or is stored in electronically readable Program code on media is implemented).
As explained above, channel 1345 can be Real-time Channel, such as, the path on the Internet, or from transmission of television Device is to the broadcasting link of television reception person, or connects to another phone put from a bit, or channel 1345 can be storage Channel, such as, CD-ROM, disc driver, website or its fellow.Channel 1345 may be believed the most in real time Road and the combination of storage channel, such as, when input file is transferred to the Internet from personal computer by telephone wire by someone Service supplier (ISP), is stored in input file on the webserver, and when being transmitted via Internet to recipient subsequently The channel formed.
As it is assumed that channel 1345 is erasure channel, so communication system 1300 not can assume that leaves receiver module 1350 Output symbol and enter transmitter module 1340 output symbol between one_to_one corresponding.It is true that wrap at channel 1345 In the case of including packet network, communication system 1300 may even not can assume that during by channel 1345 Keep any two or the relative rank of two or more bag.Therefore, use in Keying scheme as described above or More than one person determines the key of output symbol, and the order that key is not necessarily left receiver module 1350 by output symbol comes Determine.
Output symbol is supplied to decoder 1355 by receiver module 1350, and receiver module 1350 is received about these Any data of the key of output symbol are supplied to dynamic key regenerator 1360.Dynamic key regenerator 1360 regenerates and is connect The dynamic key of the output symbol received, and these dynamic key are supplied to decoder 1355.Static key generator 1363 is again Produce static key S0、S1..., and provide it to decoder 1355.Static key generator can access in coding and decoding The tandom number generator 1335 all used during process.This can be in access same physical device (if produced on such devices Raw random number) form, or in access for producing random number to realize the form of the identical algorithms of identical characteristics.Decoder 1355 by the key that provided by dynamic key regenerator 1360 and static key generator 1363 together with corresponding output symbol for extensive Multiple incoming symbol (IS (0), IS (1), IS (2) ... again).Recovered incoming symbol is supplied to by decoder 1355 Input file re-assemblies device 1365, and input file re-assemblies device 1365 and produces input file 1301 or inlet flow 1305 Copy 1370.
File transmission can be carried out by multiple receptors and/or multiple transmitter.These concepts are schemed in Figure 14 to Figure 15 Solve explanation.
Figure 14 illustrates a receptor 2402 by three channels 2406 from three emitters 2404 (indivedual earth's surfaces Be shown as " A ", " B " and " C ") receive data layout.This arranges available so that the available bandwidth of receptor increases to three Times, or deal with available duration via and be not enough to obtain from any one emitter the emitter of whole file.Show as is noted in the figures, often The stream of one emitter 2404 sending value S ().Each S () value represents output symbol B (I) and key I, it has been explained hereinbefore that output symbol Number B (I) and the use of key I.For example, value S (A, nA) it is the output symbol sequence produced at emitter 2402 (A) place In " nA" individual output symbol and " nA" individual key.From an emitter key sequence preferably with from it The sequence of the key of its emitter is different so that emitter will not repeated work.This situation in fig. 14 by sequence S () with Emitter and the fact that become and graphic extension.
Notice, it is not necessary in order to avoid repeated work, emitter 2402 synchronized or coordinate.It is true that not In the case of coordinating, each emitter may (that is, n in the diverse location in its sequenceA≠nB≠nC)。
In fig .15, the copy of an input file 2502 is supplied to multiple emitter 2504 (described emitter 2504 In both be showed in figure).Emitter 2504 independently by channel 2506 by the content according to input file 2502 The output symbol produced is transmitted into receptor 2508.Each emitter in two emitters shown may have only to send out Penetrating (K+A)/2 output symbol, the decoder of receptor just can recover whole input file afterwards.
By using two receptors and two emitters, acceptor unit 2510 total amount of the information received can be Four times of information available on one channel 2506.If (such as) identical data is broadcast to two receptors by emitter, So quantity of information is likely less than four times of single channel information.In the case of that, if data are lost in any channel, So quantity of information at acceptor unit 2510 is at least twice and the most more.Even if it should be noted that emitter is the widest Broadcast a signal, but receptor works (in view) at different time, so there being more than one receptor to intercept each Emitter has advantage.In fig .15, acceptor unit 2510 performs similarly to the receptor 150 shown in Fig. 1, solves Code device 155, key regenerator 160 and input file re-assembly the function of the function of device 165.
In certain embodiments, coding input file 2502 in the calculating device have two encoders so that meter Calculate device and can provide for one of emitter output and another output for another emitter.Looking back this After bright, other change of these examples should be obvious.
Should be understood that decoding equipment described herein and method also can use under other communication scenario, and be not limited to example Communication network such as the Internet etc..For example, optical disc also uses erasing and error correcting code to dispose and is scratched CD Problem, and will benefit from using chain reaction code to store information on CD.As another example, satellite system can make With erasure codes to trade off in terms of the power requirement for transmission, on purpose allow more by reducing power Mistake, and chain reaction decoding that apply in will be useful.Also, used erasure codes, to develop RAID, (redundancy is only Vertical disk array) system is for reliably storing information.The present invention therefore susceptible of proof is disposed potential lossy at use code Or other application (such as example above etc.) of the problem of wrong data is useful.
In some preferred embodiments, it is supplied to pass through by the instruction set (or software) performing communication process as described above Can be detrimental to consume two or more multi-application computer devices that communication medium communicates.The number of machine can be sent out at one Device and a recipient is sent to change between the individual machine being transmitted and/or receiving of any number.Connect the communication matchmaker of machine Body can be wired, optics, wireless, or its fellow.Communication system as described above has should be from this description In obvious many purposes.
The block request streaming system using HTTP streaming server may transmit file as described above. Hereinafter, the example describing this type of system is implemented.In the case of HTTP transmits as a stream, source may be standard network Server and content transmission network (CDN), thereby increases and it is possible to use standard HTTP.
In client, HTTP can be used to make requests on for the individual segments being seamlessly stitched together by client. The advantage of HTTP stream transmission comprises use standardization and existing base structure.
Figure 16 illustrates the simplification figure of the block request streaming system that may transmit file.In figure 16, graphic extension Block streaming system 100, it includes block service infrastructure (" BSI ") 101, block service infrastructure (" BSI ") 101 includes that again injected system 103, injected system 103 are used for injecting content 102, prepares that content, and By storing the content into the content storage area 110 that can be accessed by injected system 103 and HTTP streaming server 104 In and encapsulated content for the service provided by HTTP streaming server 104.As it can be seen, system 100 is also HTTP cache 106 may be comprised.When operation, the client 108 of such as HTTP streaming client etc. Request 112 is sent to HTTP streaming server 104, and from HTTP streaming server 104 or HTTP Cache 106 receives response 114.In either case, the element shown in Figure 16 may at least partly come with software Implement, software is included on processor or other electronic device the program code performed.
As shown in Figure 17, media block is storable in block service infrastructure 101 (1), block service infrastructure 101 (1) Can be (such as) http server, content transmission network device, HTTP Proxy, FTP agency or server, or certain its Its media server or system.Block service infrastructure 101 (1) is connected to network 122, and network 122 can be (such as) Yin Te FidonetFido (" IP ") network, such as the Internet etc..Block request streaming system client is shown as having six merits Energy assembly, it may be assumed that block selector 123, it is provided of metadata as described above, and performs to indicate from by metadata Multiple available block in the middle of select block to be requested or the function of partial block;Block requester 124, it is from block selector 123 Receive request instruction, and perform necessary operation with by network 122 by please to specify block, the part of block or multiple pieces Ask and be sent to block service infrastructure 101 (1), and receive the data including block returned;And block buffer 125;Slow Rush device monitor 126;Media decoder 127;With one or more medium converters 128 promoting media consumption.
The blocks of data received by block requester 124 is transferred to store the block buffer 125 of media data for depositing temporarily Storage.Or, the blocks of data received can be directly stored in as in the block buffer 125 of graphic extension in Figure 17.Block delays Rush device 125 and provide media data to media decoder 127, and media decoder 127 performs necessity conversion to these data, So that suitably input is supplied to medium converter 128, medium converter 128 makes media in being applicable to user or other disappears The form taken.The example of medium converter comprises visual display unit, such as at mobile phone, computer system or TV The visual display unit etc. of middle discovery, and may also contain audio-presenting devices, such as speaker or headband receiver etc..
Buffer monitor 126 receives the information of the content about block buffer 125, and based on this information with may other Information, provides input to block selector 123, and as described in this article, block selector 123 is to be asked in order to determine The selection of block.
Block request streaming system (BRSS) includes to one or more content servers (such as, HTTP service Device, ftp server etc.) one or more clients of making requests on.Injected system includes that one or more are noted Enter processor, wherein inject processor and receive content (real-time or non real-time), process content and use for BRSS, and will Storing can be by depositing that content server accesses for described content (may be also together with by injecting the metadata that processor produces) In reservoir.
BRSS is likely to containing the VPN Content cache matched with content server.Content server and content are the most slow Depositing may be for conventional H TTP server and HTTP cache, and it receives in comprising URL and also can comprise eight bit word The form of the HTTP request of adjusting range (so that request is less than the All Files that indicated by URL or data of section) to literary composition Part or the request of section.Client may comprise the response carrying out asking http server and dispose to they's request Conventional H TTP client, wherein HTTP client is driven by novel FTP client FTP, described novel FTP client FTP Statement request, pass it to HTTP client, meet with a response from HTTP client, and process these response (or storage, Conversion etc.), in order to provide it to present player (presentation player) and play for client terminal device.Generally, FTP client FTP does not knows which kind of media to be needed (this is because need to be likely to be dependent on user's input, user input in advance Change), therefore FTP client FTP is referred to as " transmitting as a stream " system, this is because media are quilt after one is received " consume ", or the most shortly " consumed ".As a result, operating lag and bandwidth constraint can cause and present Delay, such as, described stream arrive in user just consuming described in present local time cause the time-out etc. presented.
In order to provide to be perceived, there is presenting of good quality, can in BRSS (at client, at injection end, or At client and injection end) implement its several details.In some cases it is contemplated that the client-server at network Interface and realize implemented details to process described client-server interface.In certain embodiments, client End system and injected system all perceive enhancing, and in other embodiments, only one side perceives enhancing.In these feelings Under condition, even if a side does not perceives enhancing, whole system may also benefit from strengthening, and in other cases, benefit only exists Two sides produce in the case of perceiving enhancing, but when a side does not perceives enhancing, system is the most operable without going out event Barrier.
Such as graphic extension in Figure 18, according to various embodiments, injected system can be embodied as the combination of hardware and software component. Injected system can include one group of instruction, can perform described group of instruction so that system performs appointing in method discussed herein What one or more.System can be embodied as the particular machine in form of computers.System can be server computer, Personal computer (PC) or be able to carry out any system of one group of instruction (order or otherwise), described group of instruction is specified The action will taked by those systems.Although additionally, merely illustrate individual system, but term " system " also should be by As comprising individually or jointly performing one group (or many groups) instruction to perform any one in method discussed herein Or any set of the system of more than one person.
Injected system can comprise: inject processor 302 (such as, CPU (CPU)), can the term of execution storage The memorizer 304 of program code, and disk storage device 306, it is all in communication with each other by bus 300.System can Comprise video display unit 308 (such as, liquid crystal display (LCD) or cathode ray tube (CRT)) further.System also may be used Comprise alphanumeric input device 310 (such as, keyboard) and for receiving content source and the network interface of transmission content storage Device 312.
Disk storage unit 306 can comprise machine-readable medium, can store embodiment and be retouched herein on machine-readable medium One or more groups instruction (such as, software) of any one or more than one person in the method stated or function.? During system performs instruction, instruction also can completely or at least partially reside in memorizer 304 and/or inject processor 302 In, wherein memorizer 304 and injection processor 302 also constitute machine-readable medium.
Such as graphic extension in Figure 19, according to various embodiments, FTP client FTP can be embodied as the group of hardware and software component Close.FTP client FTP can include one group of instruction, can perform described group of instruction so that system performs method discussed herein In any one or more than one person.System can be embodied as the particular machine in form of computers.System can be server Computer, personal computer (PC) or be able to carry out any system of one group of instruction (order or otherwise), described group The action will taked is specified in instruction by those systems.Although additionally, merely illustrate individual system, but term " system " Also should be taken as and comprise individually or jointly perform one group (or many groups) instruction to perform appointing in method discussed herein Any set of what one or more system.
FTP client FTP can comprise: client end processor 402 (such as, CPU (CPU)), can the term of execution The memorizer 404 of storage program code, and disk storage device 406, it is all in communication with each other by bus 400.System System can further include video display unit 408 (such as, liquid crystal display (LCD) or cathode ray tube (CRT)).System Also can comprise alphanumeric input device 410 (such as, keyboard) and for sending request and receiving the network interface dress of response Put 412.
Disk storage unit 406 can comprise machine-readable medium, can store embodiment and be retouched herein on machine-readable medium One or more groups instruction (such as, software) of any one or more than one person in the method stated or function.? During system performs instruction, instruction also can completely or at least partially reside in memorizer 404 and/or client end processor In 402, wherein memorizer 404 and client end processor 402 also constitute machine-readable medium.
The example of specific embodiment
The appointment completely for general object transmission of the RaptorQ FEC scheme specified in using [RaptorQ-Spec] FEC scheme this chapter in describe specific embodiment.UOSI FEC payload ID can with in [RaptorQ-Spec] RaptorQ FEC scheme be used together (herein referred to as " UOD-RaptorQ FEC scheme "), to provide simplification And the object transmission capacity strengthened.Exactly, provide more flexible and simpler support for basic object transmission, and Also it is the transmission of unequal error protection (UEP) object, transmits for binding object, and be UEP and the group of binding object transmission Conjunction provides support.Should be understood that can be by suitable hardware and/or software in order to implement between the communication devices " UOD-RaptorQ FEC scheme ".
Such as graphic extension in Fig. 2, FEC payload ID form is 4 eight octet field, is wherein embodied as at this In, general file Symbol recognition symbol (UFSI) (signless integers of 32) by general object Symbol recognition symbol (UOSI) (is also The signless integer of 32) summarize.UOSI is nonnegative integer, combines UOSI with FEC OTI for identifying bag The coded identification being contained in the bag carrying those payload ID.
In order to transmit single object or multiple object or be divided into the single object of the part with different priorities or these Any combination of object, FEC OTI is as described below.It should be noted that for each object transmitted, FEC OTI Can be identical with the FEC OTI specified by RaptorQ FEC scheme.Transmission potentially includes d object, and d is a certain the most whole Number.Each object can include the different piece of same file or different file, or a combination thereof.Size F of object iiWith Size T of the coded identification of object i will be used foriBetween relation may be used to determine object i priority in the transmission.
Figure 20 illustrates the example of general FEC OTI field.As used herein, for the object transmitted Number d, there are 8 signless integers, and shown example be d=2.Default value may be d=1.Right for d Each in as (that is, for i=1 ..., d), other son field is the general FEC OTI unit particularly for object i Element, comprises: for symbol size Ti(it is less than 216Positive integer) 16 signless integers, its denoted object i The size (in units of eight bit byte) of symbol;Transmission length F for object ii(it is at most 240Nonnegative integer) 40 signless integers, the transmission length (in units of eight bit byte) of its denoted object i.There is provided and suitably fill.
Compare with general FEC OTI field, it is understood that there may be scheme specific FEC OTI element, such as institute in Figure 21 The element etc. shown.As shown in those examples, scheme specific FEC OTI element comprise symbols at parameter (Al) (8, Signless integer), (it includes the source block number Z of object i to the scheme specific FEC OTI element of each objecti(12, nothing Symbol integer) and the sub-block number N of object ii).Encoded scheme special object transmission information is (1+3*d) individual eight bit word The field of joint.Example in Figure 21 is d=2.Encoded FEC OTI then can be the word of (2+10*d) individual eight bit byte Section, it includes concatenating of encoded general FEC OTI element FEC OTI element specific with encoded scheme.
The content transmission using encoded FEC OTI can relate to use UOD-RaptorQ FEC scheme and utilization UOD-RaptorQ FEC scheme carry out the content delivery protocol (" the CDP ") device in system of object transmission, computer, Information exchange is carried out between program.D, Al should be supplied to encoder by CDP, and for each object, will Fi、Ti(multiple of Al), ZiAnd NiIt is supplied to encoder.Object i self is supplied to encoder.Use UOSI and d that pin is wrapped to CDP supply by the encoder of UOD-RaptorQ encoder scheme to sent each bag The coded identification of individual object.This information is communicated to receptor by CDP.
The example now characterising parameter selected.
In one example, the instance parameter described in [RaptorQ-Spec] the 4.3rd chapter may be used to derive, it is by independence Be applied to each in d object.In instances, Al=4 eight bit byte, (it implies that each subsymbol will to SS=8 At least SS*Al=32 eight bit byte), and the T of object iiIt is preferably at least SS*Al eight bit byte, wherein TiIt is The multiple of Al, and the payload size of each coding bag preferably has the size of at least T, wherein T is throughout Ti Summation, i=1 ..., d.
Source block is constructed, may independently the process in [RaptorQ-Spec] 4.4.1 chapter be applied in d object Each.
For coding bag structure, each coding bag is by the coded identification containing UOSI and d object.In order to realize by (SBN, the ESI) form of FEC payload ID that the RaptorQ FEC scheme of [RaptorQ-Spec] uses with by Compatibility between the UOSI form that UOD-RaptorQ FEC scheme uses, may be specific format.For example, For each object, object i from UOSI value C to the mapping of corresponding (SBN, ESI) value (A, B) may be B=lower limit (C/Zi) and A=C-B*ZiSituation.Similarly, for each object, from (SBN, ESI) value (A, B) of object i to right The mapping answering UOSI value C will be for C=A+B*Zi
For each object i=1 ..., d, from 0 to KTiThe UOSI value of-1 identifies by the object i of source block staggered sequence Source symbol, wherein KTi=the upper limit (Fi/Ti)。KTiLater UOSI value identifies and uses RaptorQ encoder from object i The reparation symbol that produces of source symbol.
The coding active symbol of Bao Kehan, reparation symbol or source symbol and the combination of reparation symbol.Bag can contain from object i Any number symbol of identical sources block.Opisthogenesis symbol in the source of object i is wrapped comprises in order to FEC encodes purpose And in the case of additional filling eight bit byte, these eight bit bytes should be contained in bag, in order to has only comprised in each bag Integral symbol.
The general object Symbol recognition symbol C carried in each coding bag is the first coding of each object carried in those bags The UOSI of symbol.Next code symbol in the bag of each object has order in order and numbers C+G-1's from C+1 UOSI, the number of the coded identification of each object during wherein G is bag.
In being preferable to carry out, each coding bag exists a coded symbols of each being used in d object. In being preferable to carry out, produce according to procedure below and send coding bag.For each UOSI value C=0,1,2,3 ..., Encoder produces and sends coding bag as follows: the value of FEC payload ID wherein encoding bag is set to UOSI value C, and (i=1 ..., d), encoder determines (SBN, the ESI) value (A corresponding to UOSI value C for each object ii, Bi), Process according to RaptorQ FEC scheme [RaptorQ-Spec] produces corresponding to (SBN, ESI) value (A from object ii, Bi) Size is TiCoded identification Ei, by coded identification EiIt is attached to the payload of coding bag, and sends coding bag.Note Meaning arrives, and receptor needs not know about the sum of coding bag.
This is a particular instance.One of ordinary skill in the art are after reading this disclosure it is envisioned that other is implemented Example.In other embodiments, it may be advantageous to carry out combination or the sub-portfolio of invention disclosed above.For the mesh illustrated And the example arrangement of component exhibiting, and should be understood that and consider combination, additional, weight in alternative embodiments of the present invention New layout and fellow thereof.Therefore, although describe the present invention about exemplary embodiments, but the technology of art Personnel are it will be recognized that numerous amendment is possible.
For example, process described herein can use nextport hardware component NextPort, component software and/or its any combination to implement. Therefore, specification and drawings should be considered illustrative and not restrictive.But, will be apparent from, the present invention can be entered The various modifications and changes of row, without deviating from more broad spirit and the scope of the present invention as illustrated in claims, and It is within the contemplation of the invention that contain all modifications in the scope of the following claims and equivalent.

Claims (18)

1. transmitted from electronic installation or a method for multiple data objects of system by packet network, wherein said many The source data of individual data object is represented by the coded symbols in wrapping so that recover at least one from described coded symbols A little described source datas, described method includes:
A) Object Transmission Information of each data object in the plurality of data object to be passed is identified " OTI ", size F that OTI comprises the described data object in units of eight bit byte, in order to represent each symbol Number the number T of eight bit byte, described symbol is used for representing described data object, and described data object in order to The number Z of the source block transmitted and be divided into;
B) the general object Symbol recognition producing each bag in multiple bags of the plurality of data object accords with “UOSI”;
C) from including that the multiple sources symbol representing the described source data of the plurality of data object produces multiple encoded Symbol, each source symbol in the symbol of described source has the position in described source data, wherein produces and be used for giving The coded symbols of the data-oriented object of at least two data object represented in bag includes:
1) FEC cataloged procedure to be used is determined;
2) from the described UOSI and the described OTI of described data-oriented object of described given bag, determine that source block is compiled Number " SBN " and coded symbols identifier " ESI ";And
3) at least based on following three for the coded symbols value that described coded symbols generation size is T: (a) Described FEC cataloged procedure, (b) are from the described SBN according to described coded symbols in described Z source block One or more source symbols of the source block determined, and the described ESI of (c) described coded symbols;
The described UOSI of wherein said given bag is allowed in described given bag represented each data object The identification of each coded symbols, and described at least two data object represented in described given bag Described SBN or ESI of the coded symbols of different pieces of information object is different;
D) table of the described OTI of each data object being included in step a) in the described data object disposed is produced The OTI field shown, wherein said OTI field also comprises the number of the data object represented by described OTI field d;
E) producing the plurality of bag for the plurality of data object, each bag in wherein said multiple bags includes The described UOSI of described bag, and the institute using described data object of each data object represented in described bag State one or more coded symbols that the described UOSI of OTI and described bag produces from described data object; And
F) the described OTI field in the form that can be used and the plurality of bag are exported by described packet network.
Method the most according to claim 1, the described OTI of each of which data object also comprises described data object The number N of sub-block that is divided into transmit of each source block.
Method the most according to claim 1, it farther includes:
SBN is set equal to UOSI mould Z;And
ESI is set equal to less than or equal to UOSI divided by the maximum integer of the business of Z.
4. transmitted from electronic installation or a method for multiple data objects of system by packet network, wherein said many The source data of individual data object is represented by the coded symbols in wrapping so that recover at least one from described coded symbols A little described source datas, described method includes:
A) Object Transmission Information of each data object in the plurality of data object to be passed is identified " OTI ", the OTI of two data objects in once transmission can be different;
B) the general object Symbol recognition producing each bag in multiple bags of the plurality of data object accords with “UOSI”;
C) from including that the multiple sources symbol representing the described source data of the plurality of data object produces multiple warp knits Code sign, each source symbol in the symbol of described source has the position in described source data, wherein produces and be used for The coded symbols of the data-oriented object of at least two data object represented in given bag includes from following Three determines the value of described coded symbols: the described UOSI of (a) described given bag, (b) described data-oriented pair The described OTI of elephant, and (c) one or more source values of symbol;The described UOSI of wherein said given bag permits The identification of each coded symbols of each data object represented in described given bag allowable, and for institute State the knowledge of the coded symbols of the different pieces of information object of described at least two data object represented in given bag Do not accord with difference;
D) the plurality of bag for the plurality of data object to be passed is produced, every in wherein said multiple bags The one described UOSI including described bag, and the described data of use of each data object represented in described bag One or more warp knits that the described OTI of object and the described UOSI of described bag produces from described data object Code sign;And
E) the plurality of bag in the form that can be used at least is exported by described packet network.
Method the most according to claim 4, it farther includes tag, so that receptor can determine that symbol is Corresponding to the source symbol of data object, also corresponding to can be at the FEC for recovering one or more source symbols The FEC used during decoding repairs symbol, and wherein said receptor includes the described of described symbol by comparing The value of the described UOSI of bag and the number of the symbol represented in data object, performs described to determine.
Method the most according to claim 4, wherein said UOSI is nonnegative integer, and each data object is described Size that OTI comprises the described data object in units of eight bit byte, in order to represent the eight bit byte of each symbol Number, described symbol is for representing the source that described data object, described data object are divided in order to transmit The number of the sub-block that the number of block, source block are divided into, and corresponding to preferred memory aligned to quasi-divisor.
Method the most according to claim 4, wherein
The described OTI of described data-oriented object comprises basic UOSI value;And
From the described UOSI of bag given (a) described, the described OTI of (b) described data-oriented object and (c) one or one Before individual above source value of symbol determines that the value of described coded symbols is included in the value determining described coded symbols, Adjust the described UOSI of described given bag by described basic UOSI value, thus allow for described UOSI's Deviant.
Method the most according to claim 4, wherein determines that the value of described coded symbols includes using forward error correction " FEC ", and wherein for the different pieces of information pair of described at least two data object represented in described given bag As, it is allowed to different grades of FEC protects, and determines that FEC protects from the described OTI of each different pieces of information object Grade.
Method the most according to claim 4, farther includes: OTI field, comprising: multiple OTI son field, Every data object has an OTI son field;And indicate the number of data object in the plurality of data object Count subfield, wherein and OTI son field described in not all is all identical, and wherein OTI son field is only Stand on what at least one other OTI son field produced.
Method the most according to claim 9, wherein for the data object of OTI son field, each OTI son field The number of source block that the size comprising described data object, described data object are divided into carry, every source The number of the sub-block that block is used, the symbol size used, and to quasi-divisor, at least two of which data object The described number of source block different.
11. methods according to claim 4, wherein said multiple data objects at least include the first data object and second Data object, wherein said transmission is organized as the independent packet sequence of at least two, wherein said first data object Coded identification occurs in the bag of the first packet sequence, and occurs in the bag of the second packet sequence, and described second data The coded identification of object occurs in the bag of described first packet sequence, but does not goes out in the bag of described second packet sequence Existing.
12. methods according to claim 4, each data object in wherein said multiple data objects includes being stored in Using data as the different file in the computer-readable media that file stores.
13. methods according to claim 4, at least one in wherein said multiple data objects includes being stored in number Part according to the different file in the computer-readable media stored as file.
14. 1 kinds use the method that electronic installation or system receive the decode the multiple data objects received by packet network, Wherein when receiving enough coded symbols, the coded symbols received is decoded into the plurality of number of expression According to the source symbol of object, described method includes:
A) Object Transmission Information of each data object in the plurality of data object that identification is transmitted " OTI ", the OTI of two data objects in once transmission can be different;
B) for be used for decoding each coded symbols, determine the source of described coded symbols coded data object The targeted described data object of symbol, coded symbols value, and include bag general right of described coded symbols As Symbol recognition accords with " UOSI ";
C) for be used for decoding each coded symbols, determine for decoding decoding parametric, wherein determine Use the OTI including the described UOSI of described bag of described coded symbols and described data object to determine Stating decoding parametric, wherein the described UOSI for described bag is allowed in described bag represented each data The identification of each coded symbols of object, and at least two data object represented in given bag is not Decoding parametric with the coded symbols of data object is different;
D) use decoding parametric determined by coded symbols and step c), described coded symbols is decoded into Represent the recovered source symbol of data object;And
E) the output described recovered source symbol in computer-reader form.
15. methods according to claim 14, it farther includes to be received by described received coded symbols Described OTI.
16. methods according to claim 14, wherein said decoding parametric includes source block number and coded symbols identification Symbol, described method farther includes:
Described source block number is set equal to the number of the source block that described UOSI mould is used;And
Described coded symbols identifier is set equal to less than or equal to UOSI divided by described in the source block used The maximum integer of the business of number.
17. methods according to claim 14, its farther include in multiple described coded symbols often once Coded identification, determines that described coded symbols corresponds to source symbol, also correspond to can for recover one or The FEC used during forward error correction " FEC " decoding of more than one source symbol repairs symbol, wherein receptor The number of described UOSI with the symbol represented in data object by comparing the described bag including described coded symbols Purpose value, performs described to determine.
18. methods according to claim 14, wherein said UOSI is nonnegative integer, and in multiple data object The described OTI of each data object comprises the size of each data object in units of eight bit byte, in order to table Show that the number of the eight bit byte of each symbol, described symbol are used for representing that data object, each data object are in order to pass The number of the sub-block that the number of source block passed and be divided into, source block are divided into, and corresponding to preferred memorizer pair Accurate to quasi-divisor, wherein OTI value is for described at least two data object represented in described given bag Say it is different, and for described at least two data object represented in described given bag, use different brackets Forward error correction " FEC ".
CN201180051061.5A 2010-10-22 2011-10-21 For providing unequal error protection and the general file transmission method of bundled files transmission service Expired - Fee Related CN103168457B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610329577.6A CN105812098A (en) 2010-10-22 2011-10-21 Universal file transmission method for providing veried error protection and

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US40609110P 2010-10-22 2010-10-22
US61/406,091 2010-10-22
US13/041,085 2011-03-04
US13/041,085 US9288010B2 (en) 2009-08-19 2011-03-04 Universal file delivery methods for providing unequal error protection and bundled file delivery services
PCT/US2011/057382 WO2012054893A2 (en) 2010-10-22 2011-10-21 Universal file delivery methods for providing unequal error protection and bundled file delivery services

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610329577.6A Division CN105812098A (en) 2010-10-22 2011-10-21 Universal file transmission method for providing veried error protection and

Publications (2)

Publication Number Publication Date
CN103168457A CN103168457A (en) 2013-06-19
CN103168457B true CN103168457B (en) 2016-11-30

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617541A (en) * 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
US20020083345A1 (en) * 2000-08-16 2002-06-27 Halliday David C. Method and system for secure communication over unstable public connections

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617541A (en) * 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
US20020083345A1 (en) * 2000-08-16 2002-06-27 Halliday David C. Method and system for secure communication over unstable public connections

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RaptorQ Forward Error Correction Scheme for Object Delivery draft-ietf-rmt-bb-fec-raptorq-04;Qualcomm Incorporated;《IETF》;20100824;第1-68页 *

Similar Documents

Publication Publication Date Title
CN105812098A (en) Universal file transmission method for providing veried error protection and
CN101432969B (en) Forward error-correcting (FEC) coding and streaming
CN105515719B (en) A kind of data transmission method and device
US9350488B2 (en) Content delivery system with allocation of source data and repair data among HTTP servers
CN101019326B (en) File download and streaming system
US20070133691A1 (en) Method and apparatus for layered rateless coding
JP5795446B2 (en) Content delivery system with allocation of source data and repair data between HTTP servers
CN100568744C (en) A kind of method and apparatus of convolutional code rate coupling
CN108400844A (en) Method, apparatus, communication equipment and the communication system of information processing
US20060107169A1 (en) Support of a forward error correction
CN105471545A (en) Data packet processing method and device
CN1992583A (en) Method for reconstructing lost packet with binary even-odd check
KR102083302B1 (en) FEC mechanism based on media content
CN102804661A (en) Block aggregation of objects in a communication system
CN101860412B (en) Sub-packet processing method, code modulating method, processor, modulation coding system
CN1610339A (en) Methods and devices for transferring and for recovering data packets
CN109274462B (en) Image transmission method based on improved online fountain codes
EP1758254A1 (en) Improved erasure correction scheme based on XOR operations for packet transmission
CN103168457B (en) For providing unequal error protection and the general file transmission method of bundled files transmission service
CN1710860A (en) Transmitter, communication system, and communication method
CN108667557A (en) A kind of adaptive FEC encoder matrix design method based on media content
CN111464880A (en) Digital movie copy transmission system based on IPv4 and IPv9 hybrid network
CN101605019A (en) Be used for effectively transmitting the system and method for electronic information
CN103067130B (en) Wireless communication method for packet-loss recovery and based on union line column check code and record separator (RS) code
JP5086980B2 (en) Transmitting terminal, receiving terminal and transmission system used in one-way transmission path

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161130

Termination date: 20181021