Код фонтана - Fountain code

В теория кодирования, коды фонтанов (также известен как коды бесскоростного стирания) являются классом коды стирания с тем свойством, что потенциально безграничный последовательность из кодирование символы могут быть сгенерированы из заданного набора исходных символов, так что исходные исходные символы в идеале могут быть восстановлены из любого подмножества кодирующих символов с размером, равным или только немного большим, чем количество исходных символов. Период, термин фонтан или же бесценный относится к тому факту, что эти коды не имеют фиксированной кодовая скорость.

Код фонтана оптимален, если оригинал k исходные символы можно восстановить из любых k успешно получили символы кодировки (т.е. исключая те, которые были стерты). Известны коды фонтана, которые имеют эффективное кодирование и декодирование. алгоритмы и которые позволяют восстановить исходный k исходные символы из любых k ’ кодирующих символов с высокой вероятностью, где k ’ просто немного больше, чем k.

Коды LT были первой практической реализацией фонтанных кодов. Коды Raptor и онлайн коды были впоследствии введены и обеспечивают линейное кодирование и декодирование по времени сложность через этап предварительного кодирования входных символов.

Информация о наличии эффективной программной реализации кода RaptorQ указана в IETF RFC 6330 (самый продвинутый код фонтана), можно найти навеб-сайт проекта Codornices в ICSI .

Приложения

Коды фонтанов гибко применимы в фиксированной кодовая скорость или где фиксированная кодовая скорость не может быть определена априори, и где требуется эффективное кодирование и декодирование больших объемов данных.

Один из примеров - это карусель данных, где некоторый большой файл непрерывно транслируется на множество получателей.[1] Используя код стирания с фиксированной скоростью, приемник, в котором отсутствует символ источника (из-за ошибки передачи), сталкивается с проблема сборщика купонов: он должен успешно получить кодирующий символ, которого у него еще нет. Эта проблема становится гораздо более очевидной при использовании традиционного короткого кода стирания, поскольку файл должен быть разделен на несколько блоков, каждый из которых кодируется отдельно: теперь получатель должен собрать необходимое количество недостающих символов кодирования для каждый блокировать. Используя код фонтана, приемнику достаточно получить любой подмножество кодирующих символов размером немного больше, чем набор исходных символов. (На практике трансляция обычно планируется оператором на фиксированный период времени на основе характеристик сети и приемников и желаемой надежности доставки, и, таким образом, исходный код используется с кодовой скоростью, которая определяется динамически в то время, когда файл запланирован для трансляции.)

Другое приложение - это гибридный ARQ в надежная многоадресная передача сценарии: информация о четности, запрошенная получателем, потенциально может быть полезна для все получатели в группе многоадресной рассылки.

Коды фонтанов в стандартах

Коды Raptor являются наиболее эффективными кодами фонтанов в настоящее время,[2] имеющий очень эффективные алгоритмы линейного кодирования и декодирования и требующий лишь небольшого постоянного количества XOR операций на сгенерированный символ как для кодирования, так и для декодирования.[3] IETF RFC 5053 подробно определяет систематический Код Raptor, который был принят во многие стандарты помимо IETF, например, в 3GPP MBMS стандарт для вещательных служб доставки файлов и потоковой передачи, DVB-H IPDC стандарт для предоставления IP-услуг через DVB сети и DVB-IPTV для предоставления коммерческих ТВ-услуг по IP-сети. Этот код может использоваться с 8192 исходными символами в исходном блоке и в общей сложности до 65 536 кодированных символов, сгенерированных для исходного блока. Этот код имеет средние относительные издержки приема 0,2% при применении к исходным блокам с 1000 исходных символов и имеет относительные издержки приема менее 2% с вероятностью 99,9999%.[4] Относительные накладные расходы на прием определяются как дополнительные данные кодирования, требуемые сверх длины исходных данных для восстановления исходных исходных данных, измеряемые в процентах от размера исходных данных. Например, если относительные накладные расходы на прием составляют 0,2%, то это означает, что исходные данные размером 1мегабайт может быть восстановлен из 1,002 мегабайта данных кодирования.

Более продвинутый код Raptor с большей гибкостью и улучшенными накладными расходами на прием, названный RaptorQ, был определен в IETF RFC 6330. Указанный код RaptorQ может использоваться с 56 403 исходными символами в исходном блоке и в общей сложности до 16 777 216 кодированных символов, сгенерированных для исходного блока. Этот код может восстанавливать исходный блок из любого набора кодированных символов, равного количеству исходных символов в исходном блоке, с высокой вероятностью, а в редких случаях - из немного большего, чем количество исходных символов в исходном блоке. Код RaptorQ является неотъемлемой частью создания экземпляра ROUTE, указанного в ATSC A-331 (ATSC 3.0).

Коды фонтана для хранения данных

Коды стирания используются в приложениях для хранения данных из-за значительной экономии количества единиц хранения для заданного уровня избыточности и надежности. Требования к дизайну кода стирания для хранения данных, особенно для приложений распределенного хранения, могут сильно отличаться от сценариев обмена данными или потоковой передачи данных. Одним из требований кодирования для систем хранения данных является систематическая форма, т. Е. Исходные символы сообщения являются частью кодированных символов. Систематическая форма позволяет считывать символы сообщения без декодирования из блока хранения. Кроме того, поскольку пропускная способность и коммуникационная нагрузка между узлами хранения могут быть узким местом, коды, обеспечивающие минимальную связь, очень полезны, особенно когда узел выходит из строя и требуется реконструкция системы для достижения начального уровня избыточности. В этом отношении ожидается, что фонтанные коды позволят эффективный процесс восстановления в случае сбоя: когда один кодированный символ потерян, он не должен требовать слишком большого объема обмена данными и вычислений среди других кодированных символов, чтобы восстановить потерянный символ. Фактически, задержка восстановления иногда может быть важнее экономии места для хранения. Ремонтные коды фонтана[5] предназначены для решения задач проектирования фонтанного кода для систем хранения. Подробный обзор кодов фонтанов и их применения можно найти на сайте.[6]

Другой подход к распределенному хранилищу с использованием исходных кодов был предложен в Liquid Cloud Storage.[7][8]Liquid Cloud Storage основано на использовании большого кода стирания, такого как код RaptorQ, указанный в IETF RFC 6330 (который обеспечивает значительно лучшую защиту данных, чем другие системы), с использованием фонового процесса восстановления (что значительно снижает требования к полосе пропускания для восстановления по сравнению с другими системами) и использования потоковой организации данных (что обеспечивает быстрый доступ к данным, даже если не все закодированные символы доступны).

Смотрите также

Примечания

  1. ^ Дж. Байерс, М. Луби, М. Митценмахер, А. Реге (1998). «Подход цифрового фонтана к надежному распределению больших объемов данных» (PDF).CS1 maint: несколько имен: список авторов (связь)
  2. ^ «Технология Qualcomm Raptor - прямое исправление ошибок». 2014-05-30.
  3. ^ (Шокроллахи 2006 )
  4. ^ Т. Стокхаммер, А. Шокроллахи, М. Уотсон, М. Луби, Т. Гасиба (март 2008 г.). Furht, B .; Ахсон, С. (ред.). «Прямое исправление ошибок прикладного уровня для мобильного мультимедийного вещания». Справочник по мобильному вещанию: DVB-H, DMB, ISDB-T и Media FLO. CRC Press.CS1 maint: несколько имен: список авторов (связь)
  5. ^ Астерис, Мегастенис; Димакис, Александрос Г. (2012). «Ремонтные коды фонтанов». Журнал IEEE по избранным областям коммуникаций. 32 (5): 1037–1047. arXiv:1401.0734. Дои:10.1109 / JSAC.2014.140522.
  6. ^ Арслан, Суайб С. (2014). «Инкрементное резервирование, исходные коды и дополнительные темы». arXiv:1402.6016 [cs.IT ].
  7. ^ Луби, Майкл; Падовани, Роберто; Ричардсон, Томас Дж .; Миндер, Лоренц; Аггарвал, Пуджа (2019). «Жидкое облачное хранилище». ACM-транзакции в хранилище. 15: 1–49. arXiv:1705.07983. Дои:10.1145/3281276.
  8. ^ Лубы, М .; Padovani, R .; Richardson, T .; Миндер, Л .; Аггарвал П. (2017). «Жидкое облачное хранилище». arXiv:1705.07983v1 [cs.DC ].

Рекомендации