Однозначность декодирования
Однозначность декодирования — это свойство кода, при котором каждое принятое кодовое сообщение можно восстановить только одним способом. Иными словами, разные последовательности кодовых слов не должны давать одну и ту же строку символов.
Условие однозначности
Код однозначно декодируется, если для любых двух последовательностей кодовых слов равенство их объединённых строк возможно только тогда, когда эти последовательности совпадают. Если одна и та же строка разбирается по-разному, декодирование неоднозначно: получатель не может точно узнать исходное сообщение.
Здесь \(c_i\) и \(d_i\) — кодовые слова, а запись рядом означает последовательное объединение символов. На практике проверяют, можно ли одну и ту же кодовую строку разделить на кодовые слова разными способами.
Пусть кодовые слова имеют вид: А → 0, Б → 01, В → 10. Строку 010 можно прочитать как 0·10, то есть «АВ», или как 01·0, то есть «БА». Поэтому этот код не обеспечивает однозначность декодирования.
Префиксный код всегда однозначно декодируется: ни одно его кодовое слово не является началом другого. Но однозначность — более общее свойство. Код может декодироваться однозначно, даже если он не является префиксным.
Кодовые слова: 0, 11, 101. Можно ли одинаково разбить строку 01101 двумя способами?
Главное
- Однозначность декодирования означает, что кодовое сообщение имеет единственное разбиение на кодовые слова.
- Если одна строка соответствует двум разным последовательностям исходных символов, код неоднозначен.
- Префиксный код гарантирует однозначность, но не всякий однозначный код является префиксным.