Допущения кодировки длины прогона - PullRequest
0 голосов
/ 29 мая 2018

При реализации кодирования Run-length (RLE) можно ли предположить, что Runs будут короче одного байта?

Таким образом, не будет ситуации, когда есть такой прогон

WWWBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...

, где есть 256 B, потому что вы не можете представить эту длину одним байтом, тогда как вы можете представить W как3W

Если нет, то Прогон должен быть разбит на два Прогона ?Как справиться с этой ситуацией?Я не смог найти никакой информации об этом деле.

1 Ответ

0 голосов
/ 29 мая 2018

Насколько я понимаю, вы правильно понимаете ситуацию.Длина слова, используемая для подсчета повторения символа, обычно составляет байт, а отдельные символы обычно также кодируются в виде байта.Если на входе есть повторение, например, 300 b, кодировка будет выглядеть следующим образом:

255 (number of repetitions of the next character)
 98 (ASCII value for b)
 45 (nunber of repetitions of the next character)
 98 (ASCII value for b)

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

...