
- •Семенов ю.А. (гнц итэф) Общие принципы построения сетей Оглавление
- •Распределения визитов сайта book.Itep.Ru по регионам за месяц (данные Rambler)
- •1 Введение (общие принципы построения сетей) Семенов ю.А. (гнц итэф)
- •2 Преобразование, кодировка и передача информации Семенов ю.А. (гнц итэф)
- •2.1 Передача сигналов по линиям связи Семенов ю.А. (гнц итэф)
- •2.2 Представление электрических сигналов в цифровой форме Семенов ю.А. (гнц итэф)
- •2.3 Цифровые каналы t1 и е1 Семенов ю.А. (гнц итэф)
- •2.4 Методы преобразования и передачи звуковых сигналов Семенов ю.А. (гнц итэф)
- •2.4.1 Дельта-модуляция Семенов ю.А. (гнц итэф)
- •2.4.2 Кодировщики голоса (Vocoder) Семенов ю.А. (гнц итэф)
- •2.4.3 Передача голоса по каналам Интернет Семенов ю.А. (гнц итэф)
- •2.5 Методы преобразования и передачи изображения Семенов ю.А. (гнц итэф)
- •Стандарт mpeg-1 и -2
- •Часть 1 mpeg-2 относится к объединению одного или более элементарных аудио или видео потоков, а также прочих данных в один или несколько потоков, удобных для записи или передачи.
- •Интерактивное телевидение
- •2.5.1 Стандарт mpeg-4 Семенов ю.А. (гнц итэф)
- •1. Особенности стандарта mpeg-4
- •1.1. Кодированное представление медийных объектов
- •1.2. Состав медийных объектов
- •1.3. Описание и синхронизация потоков данных для медийных объектов
- •1.4. Доставка потоков данных
- •1.5. Взаимодействие с медийными объектами
- •1.6. Менеджмент и идентификация интеллектуальной собственности
- •2. Основные функции в mpeg-4 версия 1
- •2.2. Системы
- •2.3. Аудио-система
- •2.4. Видео-система
- •2.4.1. Поддерживаемые форматы
- •2.4.2. Эффективность сжатия
- •2.4.3. Функции, зависящие от содержимого (Content-Based)
- •2.4.4. Масштабируемость текстур изображений и видео
- •2.4.5. Кодирование формы и Alpha-представление
- •2.4.6. Надежность в средах, подверженных ошибкам
- •2.4.7. Анимация лица
- •3.2.2. Анимация тела
- •3.2.3. Кодирование 3-d полигональных сеток
- •3.3. Звук
- •4. Расширения mpeg-4 за пределы версии 2
- •4.1. Визуальная область системы
- •4.2. Системы
- •4.2.2. Текстуальный формат
- •4.2.3. Улучшенная модель синхронизации
- •5. Профайлы в mpeg-4
- •5.1. Визуальные профайлы
- •5.2. Аудио профайлы
- •5.3. Профайлы графики
- •5.4. Графические профайлы сцены
- •5.5. Профайлы mpeg-j
- •5.6. Профайл дескриптора объекта
- •6. Верификационное тестирование: проверка работы mpeg
- •6.1. Видео
- •6.1.1. Тесты эффективности кодирования 6.1.1.1. Низкие и средние скорости передачи бит (версия 1)
- •6.1.1.2. Кодирование, базирующееся на содержимом (версия 1)
- •6.1.1.3. Профайл продвинутой эффективности кодирования ace (Advanced Coding Efficiency) (версия 2)
- •6.1.2. Тесты устойчивости к ошибкам 6.1.2.1. Простой профайл (версия 1)
- •6.1.2.2. Простой продвинутый профайл реального времени arts (Advanced Real-Time Simple) (версия 2)
- •6.1.3. Тестирование стабильности временного разрешения 6.1.3.1. Простой продвинутый профайл реального времени arts (Advanced Real-Time Simple) (версия 2)
- •6.1.4. Проверки масштабируемости 6.1.4.1. Простой масштабируемый профайл (версия 1)
- •6.1.4.2. Центральный профайл (core profile версия 1)
- •6.2. Звук
- •7. Промышленный форум mpeg-4
- •8. Детальное техническое описание mpeg-4 dmif и систем
- •8.1.1. Вычислительная модель dmif
- •8.2. Демультиплексирование, синхронизация и описание потоков данных
- •8.2.1. Демультиплексирование
- •8.2.2. Синхронизация и описание элементарных потоков
- •8.2.3. Управление буфером
- •8.2.4. Идентификация времени
- •8.3. Улучшенная модель синхронизации (FlexTime)
- •8.3.1. Гибкая длительность
- •8.3.2. Относительное время начала и конца
- •8.3.3. Поддержка FlexTime в mpeg-4
- •8.3.3.1. Узел TemporalTransform
- •8.3.3.2. Узел TemporalGroup
- •8.3.3.3. Дескриптор сегмента (SegmentDescriptor)
- •8.3.4. Модель исполнения
- •8.4. Описание синтаксиса
- •8.5. Двоичный формат описания сцены bifs (Binary Format for Scene description)
- •8.5.1. Продвинутый формат bifs
- •8.6. Взаимодействие с пользователем
- •8.7. Ipr идентификация и защита
- •8.8. Информация содержимого объекта
- •8.9. Формат файлов mpeg-4
- •9. Детальное техническое описание визуальной секции mpeg-4
- •9.1. Приложения видео-стандарта mpeg-4
- •9.2. Натуральные текстуры, изображения и видео
- •9.3. Синтетические объекты
- •9.4. Масштабируемое кодирование видео-объектов
- •9.5. Устойчивость в среде, предрасположенной к ошибкам
- •9.6. Улучшенная стабильность временного разрешения с низкой задержкой буферизации
- •9.7. Кодирование текстур и статические изображения
- •9.8. Кодирование нескольких видов и большого числа вспомогательных компонентов
- •9.8.1. Анимация лица
- •9.8.2. Анимация тела
- •9.8.3. Анимируемые 2-d сетки
- •9.8.5. Масштабируемость, зависящая от изображения
- •9.9. Структура средств для представления натурального видео
- •9.10. Поддержка обычной функциональности и зависящей от содержимого
- •9.11. Видео изображение mpeg-4 и схема кодирования
- •9.11.1. Эффективность кодирования в V.2
- •9.12. Кодирование текстур в статических изображениях
- •9.13. Масштабируемое кодирование видео-объектов
- •9.14. Устойчивость в среде, предрасположенной к ошибкам
- •9.14.1. Ресинхронизация
- •9.14.2. Восстановление данных
- •9.14.3. Сокрытие ошибок
- •10. Подробное техническое описание mpeg-4 аудио
- •10.1. Натуральный звук
- •10.2. Улучшения mpeg-4 аудио V.2
- •10.2.1. Устойчивость к ошибкам
- •10.2.2. Аудио-кодирование с малыми задержками
- •10.2.3. Масштабируемость гранулярности
- •10.2.4. Параметрическое кодирование звука
- •10.2.5. Сжатие тишины celp
- •10.2.6. Устойчивое к ошибкам hvxc
- •10.2.7. Пространственные характеристики среды
- •10.2.8. Обратный канал
- •10.2.9. Транспортный поток звука
- •10.3. Синтетический звук
- •10.3.1. Синтез с множественным управлением (Score Driven Synthesis).
- •11. Приложение. Словарь и сокращения
- •2.5.2 Стандарт mpeg-7 Семенов ю.А. (гнц итэф)
- •1. Введение
- •1.1. Контекст mpeg-7
- •1.2. Цель mpeg-7
- •1.3. Область действия стандарта
- •1.4. Область применения mpeg-7
- •1.5. План и метод работы
- •1.6. Части mpeg-7
- •1.7. Структура документа
- •2. Главные функции mpeg-7 2.1. Системы mpeg-7
- •2.2. Язык описания определений mpeg-7
- •2.3. Аудио mpeg-7
- •2.4. Визуальный mpeg-7
- •2.5. Основные объекты и схемы описания мультимедиа mpeg-7
- •2.6. Эталонные программы mpeg-7: модель экспериментов (eXperimentation Model)
- •3. Детальное техническое описание стандарта mpeg-7 3.1. Системы mpeg-7
- •3.1.1. Архитектура терминала
- •3.1.2. Нормативные интерфейсы 3.1.2.1. Описание нормативных интерфейсов
- •3.1.2.2. Верификация стандарта
- •3.2. Язык описания определений mpeg-7 (ddl)
- •3.2.1. Разработка контекста
- •3.2.2. Обзор схемы xml
- •3.2.3. Схема xml: Структуры
- •3.2.4. Схема xml: Типы данных
- •3.2.5. Расширения схемы xml mpeg-7
- •3.3. Аудио mpeg-7
- •3.3.1. Описание системы аудио mpeg-7
- •3.3.2. Средства описания аудио верхнего уровня (d и ds)
- •3.3.2.1. Средства описания тембра музыкальных инструментов
- •3.3.2.2. Средства распознавания звука
- •3.3.2.3. Средства описания содержимого сказанного
- •3.3.2.4. Средства описания мелодии
- •3.4.1.3. Временные ряды
- •3.4.1.4. Пространственные координаты 2d
- •3.4.1.5. Временная интерполяция
- •3.4.2. Описатели цвета
- •3.4.2.1. Цветовое пространство
- •3.4.2.2. Оцифровка цвета
- •3.4.2.3. Доминантный цвет(а)
- •3.4.2.4. Масштабируемый цвет
- •3.4.2.5. Описатель структуры цвета
- •3.4.2.6. Выкладка цвета
- •3.4.2.7. Цвет GoF/GoP
- •3.4.3. Описатели текстуры
- •3.4.3.1. Описатели однородной текстуры
- •3.4.3.2. Просмотр текстуры
- •3.4.3.3. Краевая гистограмма
- •3.4.4. Описатели формы
- •3.4.4.1. Форма, базирующаяся на областях (Region-Based)
- •3.4.4.2. Форма, основанная на контуре
- •3.4.5. Дескрипторы перемещения
- •3.4.5.1. Движение камеры
- •3.4.5.2. Траектория движения
- •3.4.5.3. Параметрическое движение
- •3.4.5.4. Двигательная активность
- •3.4.6. Локализация 3.4.6.1. Локатор области
- •3.4.6.2. Пространственно-временной локатор
- •3.4.7. Прочие 3.4.7.1. Распознавание лица
- •3.5. Схемы описания мультимедиа mpeg-7
- •3.5.1. Средства организации mds
- •3.5.1.1. Базовые элементы
- •3.5.1.2. Управление содержимым
- •3.5.1.3. Описание содержимого
- •3.5.1.4. Навигация и доступ
- •3.5.1.5. Организация содержимого
- •3.5.1.6. Интеракция с пользователем
- •3.5.2. Управление содержимым
- •3.5.2.1. Средства описания среды
- •3.5.2.2. Создание и производство средств описания
- •3.5.2.3. Средства описания использования содержимого
- •3.5.3. Описание содержимого 3.5.3.1. Описание структурных аспектов содержимого
- •3.5.3.2. Описание концептуальных аспектов содержимого
- •3.5.4. Навигация и доступ
- •3.5.4.1. Резюме
- •3.5.4.2. Разделы и декомпозиции
- •3.5.4.3. Вариации содержимого
- •3.5.5. Организация содержимого
- •3.5.5.1. Собрания (Collections)
- •3.5.5.2. Модели
- •3.5.6. Взаимодействие с пользователями
- •3.6. Эталонные программы: экспериментальная модель
- •3.6.1. Цели
- •3.6.2. Извлечение и приложения клиента
- •3.6.3. Модульность xm-программ
- •3.6.4. Модули приложения 3.6.4.1. Медийные декодеры
- •3.6.4.2. Мультимедийные данные
- •3.6.4.3. Средства выборки
- •3.6.4.4. Класс дескрипторов
- •3.6.4.5. Схема кодирования
- •3.6.4.6. Средство поиска
- •3.6.5. Типы приложений в xm-программах 3.6.5.1. Извлечение из среды
- •3.6.5.2. Приложение поиска и извлечения
- •3.6.5.3. Приложение транскодирования среды
- •3.6.5.4. Приложение описания фильтрации
- •3.6.6. Модель ключевого приложения mpeg-7 3.6.6.1. Определение ключевых приложений
- •3.6.6.2. Модель интерфейса
- •3.6.7. Ключевые приложения против приложений реального мира
- •Приложение а. Словарь и сокращения
- •2.5.3 Архитектура мультимедиа mpeg-21 Семенов ю.А. (гнц итэф)
- •Обзор цифровых объектов
- •Декларация цифрового объекта
- •Контейнер
- •Компонент
- •Идентификация цифрового объекта
- •Идентификация цифровых объектов
- •Идентификация различных схем описания
- •Идентификация различных типов цифровых объектов
- •Защита и управление правами интеллектуальной собственности (ipmp)
- •Язык описания прав
- •Модель данных mpeg rel
- •Принципал
- •Условие
- •Соотношение с терминологией mpeg
- •Адаптация цифрового объекта
- •Формат файлов
- •Устойчивая ассоциация идентификации и описания с цифровыми объектами
- •2.6 Методы сжатия информации Семенов ю.А. (гнц итэф)
- •2.6.1 Алгоритм Зива-Лемпеля Семенов ю.А. (гнц итэф)
- •2.6.2 Локально адаптивный алгоритм сжатия Семенов ю.А. (гнц итэф)
- •2.6.3 Сжатие данных с использованием преобразования Барроуза-Вилера Семенов ю.А. (гнц итэф)
- •2.6.4 Метод Шеннона-Фано Семенов ю.А. (гнц итэф)
- •2.6.5 Статический алгоритм Хафмана Семенов ю.А. (гнц итэф)
- •2.7 Обнаружение ошибок Семенов ю.А. (гнц итэф)
- •2.8 Коррекция ошибок Семенов ю.А. (гнц итэф)
- •Циклические коды
- •Линейные блочные коды
- •Метод коррекции ошибок fec (Forward Error Correction)
- •Введение в коды Рида-Соломона: принципы, архитектура и реализация
- •Свойства кодов Рида-Соломона
- •Ошибки в символах
- •Декодирование
- •Преимущество кодирования
- •Архитектура кодирования и декодирования кодов Рида-Соломона
- •Арифметика конечного поля Галуа
- •Образующий полином
- •Архитектура кодировщика
- •Архитектура декодера
- •Вычисление синдрома
- •Нахождение позиций символьных ошибок
- •Нахождение значений символьных ошибок
- •Реализация кодировщика и декодера Рида-Соломона Аппаратная реализация
- •Программная реализация
- •2.9 Видеоконференции по каналам Интернет и isdn Семенов ю.А. (гнц итэф)
- •2.9.1 Используемые стандарты Семенов ю.А. (гнц итэф)
- •2.10 Статистическая теория каналов связи Семенов ю.А. (гнц итэф)
- •2.10.2. Канал связи с изменяющимися состояниями
- •2.10.3. Симметричный канал без памяти
- •3 Каналы передачи данных Семенов ю.А. (гнц итэф)
- •3.1 Кабельные каналы связи Семенов ю.А. (гнц итэф)
- •3.2 Оптоволоконные каналы и беспроводные оптические связи Семенов ю.А. (гнц итэф)
- •Беспроводные оптические каналы
- •3.3 Беспроводные (радио) каналы и сети Семенов ю.А. (гнц итэф)
- •3.4 Протокол slip и rs-интерфейсы Семенов ю.А. (гнц итэф)
- •3.4.1. Протоколы rs
- •3.4.1 Интерфейсная шина FireWire (ieee1394) Семенов ю.А. (гнц итэф)
- •Особенности ieee - 1394
- •Архитектура ieee-1394
- •.5 Протокол ppp Семенов ю.А. (гнц итэф)
- •3.6 Протокол g.703 Семенов ю.А. (гнц итэф)
- •3.7 Дерево Штайнера Семенов ю.А. (гнц итэф)
- •4 Сети передачи данных. Методы доступа Семенов ю.А. (гнц итэф)
- •Топология
- •Метод доступа к сети
- •Принципы построения сетевых программных интерфейсов
- •Очереди fifo
- •Приоритетное обслуживание очередей (pq)
- •Обычное обслуживание очередей (сq)
- •Справедливые очереди (wfq)
- •Справедливые очереди базирующиеся на классах (cbwfq)
- •Очереди с малой задержкой (llq)
- •Методы работы в условиях перегрузки
- •Алгоритм leaky bucket ("дырявое ведро")
- •Алгоритм Token Bucket ("маркерное ведро")
- •4.1 Локальные сети (обзор) Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •4.1.1.1 Архитектура сетей Ethernet Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Гигабитный Ethernet (ge)
- •40 Гигабит/сек технологии
- •4.1.1.3 Интернет в Ethernet Семенов ю.А. (гнц итэф)
- •4.1.1.4 Повторители, мосты, мультиплексоры, переключатели и маршрутизаторы Семенов ю.А. (гнц итэф)
- •4.1.1.5 Алгоритмы и применения сетей p2p Семенов ю.А. (гнц итэф)
- •Определения:
- •Р2р файлообменные сети
- •P2p телевидение
- •Проблемы безопасности
- •Семенов ю.А. (гнц итэф)
- •4.1.3 Ieee 802.4 (Маркерная шина) Семенов ю.А. (гнц итэф)
- •4.1.4 Сети управления и сбора данных в реальном масштабе времени (can) Семенов ю.А. (гнц итэф)
- •4.1.5 Локальные сети ArcNet Семенов ю.А. (гнц итэф)
- •4.1.6 Сети fddi Семенов ю.А. (гнц итэф)
- •4.1.7 Параллельный сетевой интерфейс hippi Семенов ю.А. (гнц итэф)
- •4.1.8 Сети ieee 802.11 Семенов ю.А. (гнц итэф)
- •Безопасность в режиме pre-shared key
- •4.1.8.1 Мобильные телекоммуникации Семенов ю.А. (гнц итэф)
- •4.1.8.2 Стандарт широкополосной беспроводной связи ieee 802.16 Семенов ю.А. (гнц итэф)
- •1. Краткие характеристики стандарта 802.16
- •2. Сообщения управления мас
- •3. Сообщение дескриптора нисходящего канала (dcd)
- •Идентификатор нисходящего канала
- •4. Сообщение привязки нисходящего канала (dl-map)
- •6. Сообщение привязки восходящего канала(ul-map)
- •7. Сообщение запроса диапазона (rng-req)
- •Идентификатор нисходящего канала
- •Ожидание до завершения
- •8. Сообщение отклика на запрос диапазона (rng-rsp)
- •9. Сообщение запроса регистрации (reg-req)
- •10. Сообщение отклика регистрации reg-rsp
- •Возможности ss
- •11. Сообщения управления ключами конфиденциальности (pkm-req/pkm-rsp)
- •Атрибуты
- •12. Сообщение добавления ассоциации безопасности (sa Add)
- •13. Сообщение запроса авторизации (Auth Request)
- •14. Сообщение отклика авторизации (Auth Reply)
- •15. Сообщение отклонения авторизации (Auth Reject)
- •16. Сообщение запроса ключа
- •17. Сообщение отклика на запрос ключа
- •18. Сообщение отклонение ключа
- •19. Сообщение недействительности авторизации
- •20. Сообщение tek Invalid
- •21. Информационное сообщение аутентификации (Authent Info)
- •22. Сообщение запроса динамического добавления сервиса dsa-req)
- •Id транзакции
- •Id транзакции
- •Последовательность hmac
- •26. Dsa, инициированное ss
- •27. Dsa, инициированное bs
- •28. Сообщение подтверждения для динамического добавления сервиса (dsa-ack)
- •Id транзакции
- •29. Сообщение запроса dsc-req
- •30. Сообщение отклика динамического изменения сервиса (dsc-rsp)
- •Параметры сервисного потока
- •31. Сообщение подтверждения для динамического изменения сервиса (dsc-ack)
- •32. Сообщение запроса динамического аннулирования сервиса (dsd-req)
- •Id сервисного потока
- •33. Сообщение отклика на запрос динамического аннулирования сервиса (dsd-rsp)
- •Id сервисного потока
- •34. Сообщение запроса включения/удаления из списка мультикастного запроса (mca-req)
- •35. Сообщение отклика на запрос включения/удаления из списка мультикастного запроса (mca-rsp)
- •36. Сообщение запроса изменения профайла нисходящего канала (dbpc-req)
- •37. Сообщение отклика на изменение профайла нисходящего канала (dbpc-rsp)
- •38. Сообщение команды сброса (res-cmd)
- •39. Сообщение запроса базовых возможностей ss (sbc-req)
- •40. Сообщение отклика на запрос базовых возможностей (sbc-rsp)
- •41. Сообщение сверки часов (clk-cmp)
- •Порядковый номер
- •Результат сверки часов
- •42. Сообщение команды De/Re (dreg-cmd)
- •43. Сообщение о получении dSx (dsx-rvd)
- •44. Сообщение завершения копирования посредством tftp конфигурационного файла (tftp-cplt)
- •45. Сообщение отклика на уведомление о завершении копирования конфигурационного файла (tftp-rsp)
- •Специфические расширения поставщика
- •46. Сообщение запроса ключа
- •47. Сообщение отмены arq
- •48. Сообщение сброса arq
- •49. Формат сообщения (req-req) запроса результата измерения для канала
- •50. Формат сообщения (rep-req) о результате измерения для канала
- •51. Формат сообщения конфигурирования сеточной (mesh) сети (msh-ncfg)
- •Xmt Holdoff Exponent (показатель)
- •Id узла bs
- •52. Сообщение входа в сеточную сеть (msh-nent)
- •Id узла инициатора
- •53. Сообщение распределенной сеточной диспетчеризации (msh-dsch)
- •Флаг координации
- •Флаг запрос/отклик
- •Следующий Xmt Mх соседа
- •Показатель Xmt Holdoff соседа
- •Id узла соседа
- •Информационный элемент диспетчеризации msh-dsch
- •55. Информационный элемент запроса msh-dsch
- •Id канала
- •56. Информационный элемент возможностей msh-dsch
- •57. Информационный элемент предоставления msh-dsch
- •58. Сообщение централизованной диспетчеризации сетки (msh-csch)
- •Порядковый номер конфигурации
- •59. Сообщение конфигурации централизованной маршрутизации сетки (msh-cscf)
- •60. Запрос/отклик обратной связи канала aas (aas-fbck-req/rsp)
- •Литература
- •Семенов ю.А. (гнц итэф)
- •Литература
- •4.1.9 Сети dqdb (двойная шина с распределенной очередью) Семенов ю.А. (гнц итэф)
- •4.1.10 Сети с многокаскадными соединениями Семенов ю.А. (гнц итэф)
- •4.1.11 Сети 100Base-vg Семенов ю.А. (гнц итэф)
- •4.1.12 Канальный протокол Fibre Channel Семенов ю.А. (гнц итэф)
- •4.1.14 Адаптивные, кольцевые, высокоскоростные сети ieee 802.17 Семенов ю.А. (гнц итэф) Обзор
- •4.2 Наложенные сети Семенов ю.А. (гнц итэф)
- •4.2.1 Протоколы Novell (ipx/spx) Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •4.2.1.3 Протокол ядра NetWare (ncp) Семенов ю.А. (гнц итэф)
- •4.2.1.4 Протокол межсетевой передачи больших пакетов (lip) Семенов ю.А. (гнц итэф)
- •4.2.1.5 Служба каталогов NetWare (nds) Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Семенов ю.А. (гнц итэф)
- •Протокол wins
- •4.3 Региональные сети Семенов ю.А. (гнц итэф)
- •4.3.1 Эталонная сетевая модель iso Семенов ю.А. (гнц итэф)
- •4.3.2 Протоколы сетей X.25 Семенов ю.А. (гнц итэф)
- •4.3.3 Интегрированные сети isdn Семенов ю.А. (гнц итэф)
- •4.3.4 Протокол Frame Relay Семенов ю.А. (гнц итэф)
- •4.3.5 Протоколы сетей atm Семенов ю.А. (гнц итэф)
- •4.3.6 Синхронные каналы sdh/sonet Семенов ю.А. (гнц итэф)
- •4.3.7 Модемы Семенов ю.А. (гнц итэф)
- •4.4 Интернет Семенов ю.А. (гнц итэф)
- •4.4 Интернет Семенов ю.А. (гнц итэф)
2.6.2 Локально адаптивный алгоритм сжатия Семенов ю.А. (гнц итэф)
Этот алгоритм используется для кодирования (L,I), где L строка длиной N, а I - индекс. Это кодирование содержит в себе несколько этапов.
1. Сначала кодируется каждый символ L с использованием локально адаптивного алгоритма для каждого из символов индивидуально. Определяется вектор целых чисел R[0],…,R[N-1], который представляет собой коды для символов L[0],…,L[N-1]. Инициализируется список символов Y, который содержит в себе каждый символ из алфавита Х только один раз. Для каждого i = 0,…,N-1 устанавливается R[i] равным числу символов, предшествующих символу L[i] из списка Y. Взяв Y = [‘a’,’b’,’c’,’r’] в качестве исходного и L = ‘caraab’, вычисляем вектор R: (2 1 3 1 0 3).
2. Применяем алгоритм Хафмана или другой аналогичный алгоритм сжатия к элементам R, рассматривая каждый элемент в качестве объекта для сжатия. В результате получается код OUT и индекс I.
Рассмотрим процедуру декодирования полученного сжатого текста (OUT,I).
Здесь на основе (OUT,I) необходимо вычислить (L,I). Предполагается, что список Y известен.
Сначала вычисляется вектор R, содержащий N чисел: (2 1 3 1 0 3).
Далее вычисляется строка L, содержащая N символов, что дает значения R[0],…,R[N-1]. Если необходимо, инициализируется список Y, содержащий символы алфавита X (как и при процедуре кодирования). Для каждого i = 0,…,N-1 последовательно устанавливается значение L[i], равное символу в положении R[i] из списка Y (нумеруется, начиная с 0), затем символ сдвигается к началу Y. Результирующая строка L представляет собой последнюю колонку матрицы M. Результатом работы алгоритма будет (L,I). Взяв Y = [‘a’,’b’,’c’,’r’] вычисляем строку L = ‘caraab’.
Наиболее важным фактором, определяющим скорость сжатия, является время, необходимое для сортировки вращений во входном блоке. Наиболее быстрый способ решения проблемы заключается в сортировке связанных строк по суффиксам.
Для того чтобы сжать строку S, сначала сформируем строку S’, которая является объединением S c EOF, новым символом, который не встречается в S. После этого используется стандартный алгоритм к строке S’. Так как EOF отличается от прочих символов в S, суффиксы S’ сортируются в том же порядке, как и вращения S’. Это может быть сделано путем построения дерева суффиксов, которое может быть затем обойдено в лексикографическом порядке для сортировки суффиксов. Для этой цели может быть использован алгоритм формирования дерева суффиксов Мак-Крейгта. Его быстродействие составляет 40% от наиболее быстрой методики в случае работы с текстами. Алгоритм работы с деревом суффиксов требует более четырех слов на каждый исходный символ. Манбер и Майерс предложили простой алгоритм сортировки суффиксов строки. Этот алгоритм требует только двух слов на каждый входной символ. Алгоритм работает сначала с первыми i символами суффикса а за тем, используя положения суффиксов в сортируемом массиве, производит сортировку для первых 2i символов. К сожалению этот алгоритм работает заметно медленнее.
В работе [1] предложен несколько лучший алгоритм сортировки суффиксов. В этом алгоритме сортируются суффиксы строки S, которая содержит N символов S[0,…,N-1].
Пусть k число символов, соответствующих машинному слову. Образуем строку S’ из S путем добавления k символов EOF в строку S. Предполагается, что EOF не встречается в строке S.
Инициализируем массив W из N слов W[0,…,N-1] так, что W[i] содержат символы S’[i,…,i+k-1] упорядоченные таким образом, что целочисленное сравнение слов согласуется с лексикографическим сравнением для k-символьных строк. Упаковка символов в слова имеет два преимущества: это позволяет для двух префиксов сравнить сразу k байт и отбросить многие случаи, описанные ниже.
Инициализируется массив V из N целых чисел. Если элемент V содержит j, он представляет собой суффикс S’, чей первый символ равен S’[j]. Когда выполнение алгоритма завершено, суффикс V[i] будет i-ым суффиксом в лексикографическом порядке.
Инициализируем целочисленный массив V так, что для каждого i = 0,…,N-1 : V[i]=i.
Сортируем элементы V, используя первые два символа каждого суффикса в качестве ключа сортировки. Далее для каждого символа ch из алфавита выполняем шаги 6 и 7. Когда эти итерации завершены, V представляет собой отсортированные суффиксы S и работа алгоритма завершается.
Для каждого символа ch’ в алфавите выполняем сортировку элементов V, начинающихся с ch, за которым следует ch’. В процессе выполнения сортировки сравниваем элементы V путем сопоставления суффиксов, которые они представляют при индексировании массива W. На каждом шаге рекурсии следует отслеживать число символов, которые оказались равными в группе, чтобы не сравнивать их снова. Все суффиксы, начинающиеся с ch, отсортированы в рамках V.
Для каждого элемента V[i], соответствующего суффиксу, начинающемуся с ch (то есть, для которого S[V[i]] = ch), установить W[V[i]] значение с ch в старших битах и i в младших битах. Новое значение W[V[i]] сортируется в те же позиции, что и старые значения.
Данный алгоритм может быть улучшен различными способами. Одним из самоочевидных методов является выбор символа ch на этапе 5, начиная с наименьшего общего символа в S и предшествующий наиболее общему.
Ссылки
M.Burrows and D.J.Wheeler. A block-sorting Lossless Data Compression Algorithm. Digital Systems Research Center. SRC report 124. May 10, 1994.
J.L.Bently, D.D.Sleator, R.E.Tarjan, and V.K.Wei. A locally adaptive data compression algorithm. Communications of the ACM, Vol. 29, No. 4, April 1986, pp. 320-330
E.M.McCreight. A space economical suffix tree construction algorithm. Journal of the ACM, Val. 32, No. 2, April 1976, pp. 262-272.
U.Manber and E.W.Mayers, Suffix arrays: Anew method for on-line string searches. SIAM Journal on Computing, Vol. 22, No. 5, October 1993, pp. 935-948.
Смотри также раздел 2.6.3 "Сжатие данных с использованием преобразования Барроуза-Вилера",