Термин

FEC (Forward Error Correction)

Короткое определение

Стратегия восстановления потерь, где отправитель добавляет избыточные parity-пакеты, чтобы приёмник восстанавливал потери без ретрансмита. Альтернатива ARQ: стабильна по задержке, дорогая по полосе.

FEC добавляет к потоку рассчитанную избыточность. Простейшая схема – Reed-Solomon над k data-пакетами, выдающий n всего (n > k) – позволяет приёмнику восстановить исходные k из любых k из n. SMPTE 2022-1 специфицирует column/row XOR FEC, широко используемый в broadcast IP-contribution. ULPFEC (RFC 5109, декабрь 2007) – FEC внутри WebRTC. RaptorQ (RFC 6330, август 2011) – более эффективный fountain code в high-end профессиональном contribution.

Выигрыш FEC – стабильность задержки. Никаких round-trip-танцев: приёмник декодирует то, что пришло, и сразу получает исходные данные. Цена – полоса: 25 % FEC-оверхеда защищает от потерь до 20 %, и это крутой постоянный налог, тогда как обычно потери близки к нулю. Adaptive FEC подстраивает оверхед под наблюдаемые потери, снижая налог в хороших условиях.

В стриминге FEC полезнее всего на путях, где ARQ-задержка неприемлема – real-time медиа в WebRTC, спутниковая distribution, contribution через длинные bonded-cellular. Чистый FEC обычно проигрывает; продакшен-паттерн – FEC для первичного поглощения плюс ARQ для дочистки того, что FEC не взял. SRT поддерживает FEC через packet-filter API; в RIST Main Profile SMPTE 2022 FEC встроен.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.