Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
all of DiskretMat.rtf
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
60.29 Mб
Скачать

4.3.3. Пример lzw-метода.

Исходные символы текста получают свои кодовые номера априори, например номерами могут быть ASCII-коды символов, а встречающиеся в тексте цепочки символов заносятся в кодовую таблицу для возможного дальнейшего использования.

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

В начале процесса букву “е” сохраняем как префикс. Далее, строка “ех” не встречалась – регистрируем ее с кодом 27 (т.к. в исходном алфавите 27 символов, пронумерованные от 0 до 26 в алфавитном порядке, код 0 имеет символ “_”), букву “х” запоминаем как новый префикс.

ех

27

е

ха

28

х

ал

29

а

ли

30

л

и_

31

и

32

_

ме

33

м

ед

34

е

дв

35

д

ве

36

в

еди

37

34

и_н

38

31

на

39

н

а_

40

а

41

_

вел

42

36

ло

43

л

ос

44

о

си

45

с

ип

46

и

пе

47

п

еде

47

34

е_

49

е

50

_

а_з

51

40

за

52

з

а_н

53

40

ни

54

н

им

55

и

ми

56

м

и_к

57

31

ко

58

к

от

59

о

т_

60

т

61

_

зад

62

52

до

63

д

ом

64

о

м_

65

м

4.4. Метод Барроуза-Уиллера.

4.4.1. Общие положения.

Алгоритм сжатия данных на основе преобразования Барроуза-Уилера (Burrows-Wheeler Transform, далее BWT) впервые был описан сравнительно недавно - в 1994 году. Он был опубликован 10 мая в статье "A Block-sorting Lossless Data Compression Algorithm". Хотя утверждается, что один из его авторов, Майкл Уилер, придумал его гораздо раньше, в 1983 году, но тогда не придал ему надлежащего значения.

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

Классический алгоритм, описанный в оригинальной статье, представлял собой совокупность трех методов:

- метод сортировки блока данных (собственно который и называется преобразованием Барроуза-Уилера),

- MoveToFront-преобразование (известное также, как метод перемещения стопки книг),

- простой статистический кодер для сжатия преобразованных на первых двух этапах данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]