최소 단어 이상 선택하여야 합니다.
최대 10 단어까지만 선택 가능합니다.
다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
NTIS 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
DataON 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
Edison 바로가기다음과 같은 기능을 한번의 로그인으로 사용 할 수 있습니다.
Kafe 바로가기국가/구분 | United States(US) Patent 등록 |
---|---|
국제특허분류(IPC7판) |
|
출원번호 | US-0418378 (2009-04-03) |
등록번호 | US-9236885 (2016-01-12) |
발명자 / 주소 |
|
출원인 / 주소 |
|
인용정보 | 피인용 횟수 : 2 인용 특허 : 226 |
A method of encoding data into a chain reaction code includes generating a set of input symbols from input data. Subsequently, one or more non-systematic output symbols is generated from the set of input symbols, each of the one or more non-systematic output symbols being selected from an alphabet o
A method of encoding data into a chain reaction code includes generating a set of input symbols from input data. Subsequently, one or more non-systematic output symbols is generated from the set of input symbols, each of the one or more non-systematic output symbols being selected from an alphabet of non-systematic output symbols, and each non-systematic output symbol generated as a function of one or more of the input symbols. As a result of this encoding process, any subset of the set of input symbols is recoverable from (i) a predetermined number of non-systematic output symbols, or (ii) a combination of (a) input symbols which are not included in the subset of input symbols that are to be recovered, and (b) one or more of the non-systematic output symbols.
1. A method of encoding data, wherein the data to be encoded is represented as a set of K input symbols stored in a non-transitory form in an electronically-readable medium, K being an integer greater than one, wherein each of the K input symbols has a value that is from an input symbol alphabet, an
1. A method of encoding data, wherein the data to be encoded is represented as a set of K input symbols stored in a non-transitory form in an electronically-readable medium, K being an integer greater than one, wherein each of the K input symbols has a value that is from an input symbol alphabet, and wherein the encoded data is representable as a plurality of output symbols, each of which has a value that is from an output symbol alphabet, the method comprising: obtaining at least some of the K input symbols in an electronically-readable form, such that each of the K input symbols has an associated position within the K input symbols;generating, from the plurality of input symbols, a plurality of intermediate symbols, each intermediate symbol having an associated position within the plurality of intermediate symbols, wherein the generation of the plurality of intermediate symbols from the plurality of input symbols is performed according to a rateless decoding process, wherein a rateless decoding process is rateless in that it is an inverse of a rateless encoding process that can generate a number of output symbols where the number is independent of the number of input symbols; andgenerating output symbols of the plurality of output symbols, using the rateless encoding process and having the plurality of intermediate symbols as an input, wherein the rateless encoding process and the rateless decoding process have the property that the plurality of output symbols is, in part, systematic, so that K of the plurality of output symbols are equal to the K input symbols, and further wherein additional output symbols beyond K systematic output symbols are generated using the same rateless encoding process as would generate the K systematic output symbols. 2. The method of claim 1, wherein generating output symbols of the plurality of output symbols comprises generating K systematic output symbols and a number of non-systematic output symbols, wherein generating the K systematic output symbols comprises copying the K input symbols. 3. The method of claim 1, wherein generating the plurality of intermediate symbols comprises: determining K systematic keys, each corresponding to one of the K input symbols;determining, for each of K systematic keys, a set of neighboring intermediate symbols, wherein a given intermediate symbol is a neighbor for a given systematic key and its corresponding input symbol if and when the given intermediate symbol has a value dependent on the value of the input symbol corresponding to the given systematic key; andcalculating a value of an intermediate symbol according to a function of the input symbols that have that intermediate symbol as a neighbor. 4. The method of claim 3, further comprising: determining whether the K sets of neighbors, for the K input symbols associated with the K systematic keys, are linearly independent; andif the K sets of neighbors are not linearly independent, modifying the set of K systematic keys until the K sets of neighbors are linearly independent. 5. The method of claim 3, wherein determining K systematic keys comprises reading K systematic keys from a pre-computed table of systematic keys for some or all relevant values of K. 6. The method of claim 3, wherein determining K systematic keys comprises calculating the K systematic keys from a value of K and a value of a seed, wherein the seed is an initial value available to the encoder and a decoder. 7. The method of claim 3, further comprising: storing the K systematic keys; andtransmitting the K systematic keys, or representations thereof, to a receiver for a decoding process. 8. The method of claim 1, wherein obtaining at least some of the K input symbols comprises receiving all K input symbols prior to generating any output symbols. 9. An encoder, having an input to electronically receive data to be encoded and an output to output encoded data that can represent the received data as the encoded data is conveyed over a communications channel, wherein the encoded data is representable as a plurality of output symbols, each of which has a value that is from an output symbol alphabet, the encoder comprising: an input for receiving K input symbols in an electronically-readable form, the K input symbols representing the data to be encoded, K being an integer greater than one, wherein each of the K input symbols has a value that is from an input symbol alphabet;storage for at least some of the K input symbols, such that values of stored input symbols can be read by a module of the encoder and wherein each of the stored input symbols has an associated position within the K input symbols;a key generator for generating K systematic key values;a decoder module for generating a plurality of L intermediate symbols from the K input symbols according to the K systematic key values;a rateless encoder module for generating non-systematic output symbols that form part of the encoded data, generated from intermediate symbols and non-systematic key values, wherein the rateless encoder is such that, given the plurality of L intermediate symbols based on the K systematic key values and the K input symbols, the rateless encoder's output would match the K input symbols, wherein the rateless encoding process is rateless in that it can generate an output symbol for each of a plurality of keys and the number of keys available is independent of K; andan output for outputting K systematic output symbols and outputting additional output symbols that are non-systematic output symbols. 10. The encoder of claim 9, wherein the output for outputting the outputting K systematic output symbols is configured to copy the K input symbols as the K systematic output symbols. 11. The encoder of claim 9, wherein the rateless decoder module includes logic to generate values of the L intermediate symbols based on a set of neighbors of input symbols, wherein the set of neighbors is determined from the K systematic key values and wherein a value of a given intermediate symbol depends, at least in part, on values of from one to K of the K input symbols that have that given intermediate symbol as a neighbor. 12. The encoder of claim 11, further comprising logic for determining whether the K sets of neighbors, for the K input symbols associated with the K systematic keys, are linearly independent, and if the K sets of neighbors are not linearly independent, modifying the set of K systematic keys until the K sets of neighbors are linearly independent. 13. The encoder of claim 9, wherein the key generator for generating K systematic key values is configured to read K systematic keys from a pre-computed table of systematic keys for some or all relevant values of K. 14. The encoder of claim 9, wherein the key generator for generating K systematic key values is configured to generate the K systematic keys from a value of K and a value of a seed, wherein the seed is an initial value available to the encoder and a decoder. 15. The encoder of claim 9, wherein the key generator for generating K systematic key values is configured to store values of the K systematic keys so that they, or representations thereof, can be transmitted to a receiver for a decoding process. 16. A computer program product that comprises a non-transitory tangible media storing computer-executable code for execution upon a computer system including a processor, the computer program product comprising: program code for encoding data, wherein the data to be encoded is represented as a set of K input symbols stored in a non-transitory form in an electronically-readable medium, K being an integer greater than one, wherein each of the K input symbols has a value that is from an input symbol alphabet, and wherein the encoded data is representable as a plurality of output symbols, each of which has a value that is from an output symbol alphabet;program code for reading at least some of the K input symbols, such that each of the K input symbols has an associated position within the K input symbols;program code for generating, from the plurality of input symbols, a plurality of intermediate symbols, each intermediate symbol having an associated position within the plurality of intermediate symbols, including rateless decoder code, wherein rateless decoding is rateless in that it is an inverse of a rateless encoding process that can generate a number of output symbols where the number is independent of the number of input symbols; andprogram code for generating output symbols of the plurality of output symbols, using the rateless encoding process and having the plurality of intermediate symbols as an input, wherein the rateless encoding process and rateless decoding have the property that the plurality of output symbols is, in part, systematic, so that K of the plurality of output symbols are equal to the K input symbols, and further wherein additional output symbols beyond K systematic output symbols are generated using the same rateless encoding process as would generate the K systematic output symbols. 17. The computer program product of claim 16, wherein the program code for generating output symbols comprises program code for generating K systematic output symbols and a number of non-systematic output symbols, wherein generating the K systematic output symbols comprises copying the K input symbols. 18. The computer program product of claim 16, wherein the program code for generating the plurality of intermediate symbols comprises: program code for determining K systematic keys, each corresponding to one of the K input symbols;program code for determining, for each of K systematic keys, a set of neighboring intermediate symbols, wherein a given intermediate symbol is a neighbor for a given systematic key and its corresponding input symbol if and when the given intermediate symbol has a value dependent on the value of the input symbol corresponding to the given systematic key; andprogram code for calculating a value of an intermediate symbol according to a function of the input symbols that have that intermediate symbol as a neighbor. 19. The computer program product of claim 18, further comprising: program code for determining whether the K sets of neighbors, for the K input symbols associated with the K systematic keys, are linearly independent; andprogram code for modifying the set of K systematic keys if the K sets of neighbors are not linearly independent, until the K sets of neighbors are linearly independent. 20. The computer program product of claim 18, wherein the program code for determining K systematic keys comprises program code for reading K systematic keys from a pre-computed table of systematic keys for some or all relevant values of K. 21. The computer program product of claim 18, wherein the program code for determining K systematic keys comprises program code for generating the K systematic keys from a value of K and a value of a seed, wherein the seed is an initial value available to the encoder and a decoder. 22. The computer program product of claim 18, further comprising program code for storing values of the K systematic keys so that they, or representations thereof, can be transmitted to a receiver for a decoding process. 23. The computer program product of claim 16, wherein the program code for reading at least some of the K input symbols comprises program code for reading all K input symbols prior to generating any output symbols. 24. A method of decoding data received from an electronically-readable medium in a non-transitory form, wherein the received data to be decoded is received as a set of output symbols comprising all or some of a plurality of output symbols generated using a rateless encoding process and encoding for K input symbols, wherein K is an integer greater than one and a rateless encoding process is rateless in that the number of output symbols the process can generate is independent of K, wherein each of the K input symbols is representable by a value that is from an input symbol alphabet, and wherein each of the received output symbols has a value that is from an output symbol alphabet, the method comprising: determining a key for each of the received output symbols to be used in decoding;if an output symbol's key is a systematic key, storing that output symbol's value as the value for at least one of the K input symbols corresponding to the systematic key, thereby recovering at least one input symbol, and indicating that the output symbol is used up;determining if any of the K input symbols are not yet recovered; andif any unrecovered input symbols remain, performing the steps of: a) determining at least one non-systematic key for output symbols that are not used up;b) determining, based on a non-systematic key, a mapping between input symbols and the output symbol corresponding to that non-systematic key;c) identifying if any input symbols can be recovered from the available not used up output symbols;d) recovering input symbols that can be recovered;e) removing dependency of the not used up output symbols on the recovered input symbols; andf) repeating steps c), d) and e), until a threshold number of the K input symbols are recovered. 25. The method of claim 24, wherein the threshold number of the K input symbols is K. 26. The method of claim 24, wherein the number of received output symbols is between K and K plus a predetermined increment. 27. The method of claim 26, wherein the predetermined increment is less than K. 28. The method of claim 26, wherein the predetermined increment is larger than or equal to K. 29. The method of claim 24, wherein determining a mapping between input symbols and the output symbol corresponding to a non-systematic key comprises determining a mapping between one or more intermediate symbol and the output symbols and a mapping between the one or more intermediate symbol and the input symbols, wherein identifying if any input symbols can be recovered further comprises identifying if any intermediate symbols can be recovered from the available not used up output symbols, the method further comprising: recovering intermediate symbols that can be recovered;recovering input symbols from the recovered intermediate symbols, using a rateless encoding process; andremoving dependency of the not used up output symbols on the recovered intermediate symbols. 30. The method of claim 29, wherein the mapping between the one or more intermediate symbol and the input symbols is defined by a set of neighbors for each intermediate symbol, wherein a set of neighbors represents a number, from one to K, of the K input symbols upon which a value of the intermediate symbol depends and is a function of its set of neighbors. 31. A decoder, having an input to electronically receive data to be decoded and an output to output decoded data wherein the received data represents, at least in part, encoded data that is, at least in part, decodable into the encoded data, wherein the encoded data is representable as a plurality of output symbols, the received data is a set of output symbols comprising all or some of a plurality of output symbols generated using a rateless encoding process and encoding for K input symbols, the decoder comprising: an input for receiving the received set of output symbols;storage for at least some recovered input symbols;logic for determining, for each one of at least some of the received output symbols, a key corresponding to the output symbol;logic for designating or storing values of output symbols as values of input symbols when the key of an output symbol is a systematic key;logic for determining mappings of output symbols to input symbols for output symbols that are not used up in decoding; andlogic for determining values of input symbols not already recovered, from output symbols that are not used up in decoding and the mappings; andan output for outputting at least a threshold number of input symbols upon receiving a predetermined number of output symbols. 32. The decoder of claim 31, wherein the threshold number of input symbols is K and the predetermined number of output symbols is between K and K plus a predetermined increment. 33. The decoder of claim 32, wherein the predetermined increment is less than K. 34. The decoder of claim 32, wherein the predetermined increment is greater than or equal to K. 35. The decoder of claim 31, wherein the threshold number of input symbols is less than K and the predetermined number of output symbols is at least K. 36. The decoder of claim 31, further comprising storage for intermediate symbols, a mapping between one or more intermediate symbol and the output symbols, a mapping between the one or more intermediate symbol and the input symbols, and for keys associated with at least some of the output symbols and/or at least some of the input symbols. 37. The decoder of claim 36, wherein the mapping between the one or more intermediate symbol and the input symbols is defined by a set of neighbors for each intermediate symbol, wherein a set of neighbors represents a number, from one to K, of the K input symbols upon which a value of the intermediate symbol depends and is a function of its set of neighbors. 38. A computer program product that comprises a non-transitory tangible media storing computer-executable code for execution upon a computer system including a processor to decode data received in a non-transitory form as a set of output symbols comprising all or some of a plurality of output symbols generated using a rateless encoding process and encoding for K input symbols, wherein K is an integer greater than one and a rateless encoding process is rateless in that the number of output symbols the process can generate is independent of K, wherein each of the K input symbols is representable by a value that is from an input symbol alphabet, and wherein each of the received output symbols has a value that is from an output symbol alphabet, the computer program product comprising: program code for determining a key for each of the received output symbols to be used in decoding;program code for storing that output symbol's value as the value for at least one of the K input symbols, if the output symbol's key is a systematic key, thereby recovering at least one input symbol;program code for indicating that the output symbol is used up if its key is a systematic key and the corresponding input symbol is already recovered;program code for determining if any of the K input symbols are not yet recovered;program code for determining if any unrecovered input symbols remain; andprogram code, executable when unrecovered input symbols remain, for: a) determining at least one non-systematic key for output symbols that are not used up;b) determining, based on a non-systematic key, a mapping between input symbols and the output symbol corresponding to that non-systematic key;c) identifying if any input symbols can be recovered from the available not used up output symbols;d) recovering input symbols that can be recovered;e) removing dependency of the not used up output symbols on the recovered input symbols; andf) repeating steps c), d) and e), until a threshold number of the K input symbols are recovered. 39. The computer program product of claim 38, wherein the threshold number of the K input symbols is K. 40. The computer program product of claim 38, wherein the number of received output symbols is between K and K plus a predetermined increment. 41. The method of claim 40, wherein the predetermined increment is less than K. 42. The method of claim 40, wherein the predetermined increment is greater than or equal to K. 43. The computer program product of claim 38, further comprising: program code for determining a mapping between input symbols and the output symbol corresponding to a non-systematic key comprises determining a mapping between one or more intermediate symbol and the output symbols;program code for determining a mapping between the one or more intermediate symbol and the input symbols, wherein identifying if any input symbols can be recovered further comprises identifying if any intermediate symbols can be recovered from the available not used up output symbols;program code for recovering intermediate symbols that can be recovered;program code for recovering input symbols from the recovered intermediate symbols, using a rateless encoding process; andprogram code for removing dependency of the not used up output symbols on the recovered intermediate symbols. 44. The computer program product of claim 43, wherein the mapping between the one or more intermediate symbol and the input symbols is defined by a set of neighbors for each intermediate symbol, wherein a set of neighbors represents a number, from one to K, of the K input symbols upon which a value of the intermediate symbol depends and is a function of its set of neighbors. 45. The computer program product of claim 38, further comprising program code to receive a seed usable for regenerating K systematic keys usable for decoding. 46. The computer program product of claim 38, further comprising program code to receive transmitted representations of K systematic keys usable for decoding.
Copyright KISTI. All Rights Reserved.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.