СПОСОБЫ И УСТРОЙСТВО, ИСПОЛЬЗУЮЩИЕ КОДЫ С FEC С ПОСТОЯННОЙ ИНАКТИВАЦИЕЙ СИМВОЛОВ ДЛЯ ПРОЦЕССОВ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ

1. Способ электронной передачи данных посредством одного или нескольких передатчиков, способных выдавать электронный сигнал, причем данные, подлежащие передаче, представлены упорядоченным набором исходных символов, и данные передают как последовательность кодированных символов, представляющих, по меньшей мере, часть электронного сигнала, причем способ содержит:
получение в электронно считываемом виде упорядоченного набора исходных символов;
создание набора промежуточных символов из упорядоченного набора исходных символов, причем исходные символы можно создать из набора промежуточных символов;
назначение наборов промежуточных символов, так что каждый промежуточный символ назначают в качестве элемента одного из наборов промежуточных символов, и имеется, по меньшей мере, первый набор промежуточных символов и второй набор промежуточных символов, и причем каждый набор промежуточных символов связан с отличающимися другими кодирующими параметрами и имеет в качестве элементов по меньшей мере один промежуточный символ; и
создание множества кодированных символов, причем кодированный символ создают из одного или нескольких промежуточных символов, причем, по меньшей мере, один кодированный символ создают непосредственно или опосредованно из множества промежуточных символов, выбранных из множества наборов промежуточных символов.
2. Способ по п. 1, в котором первый набор промежуточных символов назначают в качестве символов для декодирования с распространением надежности, а второй набор промежуточных символов назначают в качестве символов, подлежащих инактивации, для декодирования с распространением надежности.
3. Способ по п. 1, в котором каждый кодированный символ создают из комбинации первого символа, созданного из одного или более первых наборов промежуточных символов, а второй символ создают из одного или более вторых наборов промежуточных символов.
4. Способ по п. 3, в котором отличающиеся параметры кодирования содержат, по меньшей мере, отличающиеся распределения степени, так что каждый кодированный символ создают из комбинации первого символа, созданного из одного или более первых наборов промежуточных символов, имеющих первое распределение степени, и второго символа, созданного из одного или более вторых наборов промежуточных символов, имеющих второе распределение степени, отличное от первого распределения степени.
5. Способ по п. 3, в котором первый символ создают с использованием процесса кодирования с цепной реакцией, применяемого к первому набору промежуточных символов.
6. Способ по п. 3, в котором второй символ является результатом операции «исключающее ИЛИ» с фиксированным количеством символов, выбранных случайным образом из второго набора промежуточных символов.
7. Способ по п. 3, в котором второй символ является результатом операции «исключающее ИЛИ» с первым количеством символов, выбранных случайным образом из второго набора промежуточных символов, и причем первое количество зависит от второго количества, равного количеству символов, выбранных из первого набора для создания первого символа.
8. Способ по п. 3, в котором упомянутая комбинация является результатом операции «исключающее ИЛИ» с первым символом и вторым символом.
9. Способ по п. 1, в котором промежуточные символы содержат упорядоченный набор исходных символов и набор избыточных исходных символов, созданных из упорядоченного набора исходных символов.
10. Способ по п. 9, в котором, по меньшей мере, некоторые из избыточных символов создают с использованием операций в поле GF[2], а другие избыточные символы создают с использованием операций в поле GF[256].
11. Способ по п. 1, в котором промежуточные символы создают во время кодирования из исходных символов с использованием процесса декодирования, причем процесс декодирования основан на линейном наборе соотношений между промежуточными символами и исходными символами.
12. Способ по п. 11, в котором, по меньшей мере, некоторые из линейных соотношений представляют собой соотношения на поле GF[2], а другие линейные соотношения представляют собой соотношения на поле GF[256].
13. Способ по п. 1, в котором количество отличающихся кодированных символов, которое можно создать из данного упорядоченного набора исходных символов, не зависит от количества исходных символов в этом упорядоченном наборе.
14. Способ по п. 1, в котором среднее количество символьных операций, выполняемых для создания кодированного символа, ограничено константой, не зависящей от количества исходных символов в этом упорядоченном наборе.
15. Способ по п. 1, в котором первый набор символов на порядок больше, чем второй набор символов.
16. Способ приема данных от источника, причем данные принимают в адресате по каналу пакетной связи, и, причем данные, представляемые набором кодированных символов, полученных из упорядоченного набора исходных символов, представляют данные, посланные от источника к адресату, причем способ содержит:
получение набора принятых кодированных символов;
декодирование набора промежуточных символов из набора принятых кодированных символов;
связывание каждого из промежуточных символов с набором промежуточных символов, причем промежуточные символы связывают, по меньшей мере, в два набора, и, причем один набор назначают в качестве набора постоянно инактивных символов в целях планирования процесса декодирования для восстановления промежуточных символов из принятых кодированных символов; и
восстановление, по меньшей мере, некоторых исходных символов из упорядоченного набора исходных символов из набора промежуточных символов согласно процессу декодирования.
17. Способ по п. 16, в котором процесс декодирования содержит по меньше мере первую фазу декодирования, причем создают набор сокращенных кодированных символов, который зависит от второго набора постоянно инактивных символов, и третий набор динамически инактивных символов, являющийся поднабором первого набора символов, и вторую фазу декодирования, причем набор сокращенных кодированных символов используют для декодирования второго набора постоянно инактивных символов и третьего набора динамически инактивных символов, и третью фазу декодирования, причем декодированный второй набор постоянно инактивных символов и третий набор динамически инактивных символов и набор принятых кодированных символов используют для декодирования, по меньшей мере, некоторых из оставшихся промежуточных символов, находящихся в первом наборе символов.
18. Способ по п. 17, в котором на первой фазе декодирования используют декодирование с распространением надежности в сочетании с декодированием с инактивацией и/или на второй фазе декодирования используют гауссово исключение.
19. Способ по п. 17, в котором на третьей фазе декодирования используют обратную замену или обратную развертку, за которой следует прямая развертка.
20. Способ по п. 17, в котором процесс декодирования выполняется с третьим набором динамически инактивированных символов с учетом того, что количество символов в третьем наборе динамически инактивированных символов составляет менее 10% от количества исходных символов и/или меньше 10% от количества символов во втором наборе постоянно инактивных символов.
21. Способ по п. 16, в котором принятые кодированные символы действуют как символы, созданные с использованием кода LDPC, или символы, созданные с использованием кода Рида-Соломона.
22. Способ по п. 16, в котором каждый принятый кодированный символ из набора принятых кодированных символов обрабатывается как комбинация первого символа, созданного из одного или более символов первого набора, и второго символа, созданного из одного или более символов второго набора.
23. Способ по п. 22, в котором каждый принятый кодированный символ обрабатывается как комбинация, являющаяся результатом операции «исключающее ИЛИ» с первым символом и вторым символом.
24. Способ по п. 22, в котором каждый принятый кодированный символ обрабатывается как второй символ, являющийся результатом операции «исключающее ИЛИ» с фиксированным количеством символов, которое было выбрано случайным образом из второго набора.
25. Способ по п. 22, в котором каждый принятый кодированный символ обрабатывается как второй символ, являющийся результатом операции «исключающее ИЛИ» с первым количеством символов, которое было выбрано случайным образом из второго набора, причем первое количество символов зависит от второго количества символов, которое было выбрано из первого набора для создания первого символа.
26. Способ по п. 22, в котором процесс декодирования осуществляется так, как если бы первый символ был выбран на основе кода с цепной реакцией из первого набора символов.
27. Способ по п. 16, в котором процесс декодирования осуществляется так, как если бы размер второго набора постоянно инактивных символов был пропорционален корню квадратному из количества исходных символов.
28. Способ по п. 16, в котором процесс декодирования осуществляется так, как если бы промежуточные символы содержали упорядоченный набор исходных символов и набор избыточных символов, созданный из упорядоченного набора исходных символов.
29. Способ по п. 28, в котором процесс декодирования осуществляется так, как если бы, по меньшей мере, некоторые избыточные символы были созданы с использованием операций в поле GF[2], а другие избыточные символы были созданы с использованием операций в поле GF[256].
30. Способ по п. 16, в котором процесс декодирования осуществляется так, как если бы промежуточные символы содержали упорядоченный набор исходных символов.
31. Способ по п. 16, в котором процесс декодирования осуществляется так, как если бы промежуточные символы были символами, созданными из исходных символов с использованием процесса декодирования на основе линейного набора соотношений между промежуточными символами и исходными символами.
32. Способ по п. 31, в котором процесс декодирования осуществляется так, как если бы, по меньшей мере, некоторые из линейных соотношений являлись соотношениями на поле GF[2], а другие линейные соотношения являлись соотношениями на поле GF[256].
33. Способ по п. 16, в котором процесс декодирования осуществляется так, как если бы количество различных возможных кодированных символов, которые могут быть приняты, не зависело от количества исходных символов в упорядоченном наборе.
34. Способ по п. 16, в котором среднее количество символьных операций, выполняемых для декодирования набора исходных символов из набора принятых кодированных символов, ограничено константой, кратной количеству исходных символов, причем эта константа не зависит от количества исходных символов.
35. Способ по п. 16, в котором процесс декодирования осуществляется так, как если бы количество символов в первом наборе символов было на порядок больше, чем количество символов во втором наборе постоянно инактивных символов.
Λ
36. Способ по п. 16, в котором процесс декодирования осуществляется так, что восстановление всех исходных символов из набора, состоящего из K исходных символов из набора N=K+A кодированных символов для некоторых K, N и A имеет вероятность успеха с нижней границей, по меньшей мере, равной 1-(0,01)(A+1) для A=0, 1 или 2, причем эта нижняя граница не зависит от количества исходных символов.
37. Способ обслуживания файла с использованием сервера, связанного с сетью данных, причем обслуживание включает в себя организацию данных файла в один или несколько блоков, создание одного или более кодированных символов для блока на основе данных этого блока, и причем по меньшей мере один блок физически или логически организуют в множество субблоков, и по меньшей мере один кодированный символ физически или логически организуют во множество субсимволов, причем способ содержит:
разбиение входного файла на целое количество блоков, причем каждый блок включает в себя, по меньшей мере, один субблок, и причем каждый субблок включает в себя, по меньшей мере, один исходный символ;
определение значения WS, представляющего максимальный размер субблока, на основе ограничения памяти;
определение значения SS, где SS·AL представляет нижнюю границу для размера субсимвола в единицах предпочтительного размера AL блока памяти;
определение того, какие блоки из целочисленного количества блоков следует организовать в множество субблоков, и для каждого указанного блока организацию блока в множество субблоков, имеющих размер, определенный доступным пространством в пакетах для кодированных символов, подлежащих посылке, определение размера символа, который необходимо использовать в каждом посылаемом пакете, таким путем, чтобы обеспечить количество исходных символов для исходных блоков в пределах порогового значения, причем это количество равно количеству Kt исходных символов в файле, и чтобы обеспечить, что размер субсимвола каждого субблока не более SS·AL, и обеспечить, что размер каждого субблока не более WS;
создание кодированных символов из блоков, причем субсимволы создают из субблоков, так что каждый кодированный символ зависит от данных из одного блока;
вывод созданных кодированных символов.
38. Способ восстановления блока данных в приемнике с использованием клиента, связанного с сетью данных, причем блок включает в себя группу из одного или более субблоков, причем способ содержит:
прием множества кодированных символов, созданных из упомянутого блока, причем каждый кодированный символ включает в себя множество субсимволов, созданных, по меньшей мере, из одного субблока, с использованием общего набора операций;
определение значения WS, представляющего максимальный размер субблока на основе ограничения памяти;
определение значения SS, где SS·AL представляет нижнюю границу для размера субсимвола в единицах предпочтительного размера AL блока памяти;
определение, какие блоки из целочисленного количества блоков организованы в множество субблоков, и для каждого указанного блока организацию блока в множество субблоков, имеющих размер, определенный первым параметром, установленным отправителем и представляющим доступное пространство в пакетах, причем второй параметр представляет размер символа, использованный в каждом пакете, при этом упомянутые параметры таковы, что количество исходных символов для исходных блоков не превышает пороговое значение, и это количество равно количеству Kt исходных блоков в файле;
декодирование блоков из принятых кодированных блоков, причем субблоки декодируют из субсимволов, и субблоки образуют блоки, причем размер субсимвола каждого субблока не более SS·AL, а размер каждого субблока не более WS; и
вывод декодированных блоков.