Оглавление:
- Определение - Что означает преобразование Берроуза-Уилера (BWT)?
- Техопедия объясняет преобразование Берроуза-Уилера (BWT)
Определение - Что означает преобразование Берроуза-Уилера (BWT)?
Преобразование Барроуза-Уилера (BWT) - это алгоритм, который принимает блоки данных, такие как строки, и упорядочивает их в последовательности похожих символов. После преобразования выходной блок содержит те же самые точные элементы данных до его начала, но отличается по порядку. Природа алгоритма имеет тенденцию размещать похожие символы рядом друг с другом, что упрощает сжатие результирующего порядка данных. Следовательно, он используется во многих алгоритмах сжатия.
Техопедия объясняет преобразование Берроуза-Уилера (BWT)
Алгоритм преобразования Барроуза-Уилера - это относительно новый алгоритм, изобретенный в 1994 году Майклом Барроузом и Дэвидом Уилером и основанный на неопубликованном преобразовании, обнаруженном Уилером в 1983 году, опубликованном в их статье «Алгоритм сжатия данных без потерь при сортировке блоков».
В основном, BWT берет блок данных, такой как строка, добавляя символ EOF и затем сортируя все повороты этой строки в лексикографическом порядке. Следующий псевдокод или шаги иллюстрируют алгоритм:
- Создайте таблицу, которая содержит строки, которые представляют все возможные одноступенчатые вращения строки.
- Сортировать все строки по алфавиту.
- Выведите последний столбец таблицы.
Например: слово «банан»; добавление символа EOF превращает его в «banana $», затем мы применяем алгоритм:
1. Создайте таблицу со строками, представляющими все возможные повороты:
банан $
Анана $ б
Нана $ ба
ана $ запрет
на $ бана
в размере $ Банан
$ банан
2. Сортируйте строки по алфавиту / лексикографически по первому столбцу:
$ банан
в размере $ Банан
ана $ запрет
Анана $ б
банан $
Нана $ ба
на $ бана
3. Верните последний столбец как вывод BWT: annb $ aa
Полученную строку легче сжать, потому что повторяющиеся символы сгруппированы рядом друг с другом. Но должны быть дополнительные данные, сохраненные с преобразованными данными, чтобы можно было выполнить обратное преобразование. Несмотря на то, что результирующие преобразованные данные больше, чем их первоначальная форма, но их характеристика сжимаемости многократно увеличивается, что делает их «свободным» методом повышения эффективности методов сжатия.
