stringtranslate.com

Алгоритм Адам7

Иллюстрация переплетения Adam7 на изображении 16×16
Изображение отображается с использованием алгоритма Adam7.

Adam7 — это алгоритм чересстрочной развертки для растровых изображений , наиболее известный как схема чересстрочной развертки, опционально используемая в изображениях PNG . Чересстрочное изображение Adam7 разбивается на семь подизображений, которые определяются путем репликации этого шаблона 8×8 по всему изображению.

Затем фрагменты изображения сохраняются в файле изображения в числовом порядке.

Adam7 использует семь проходов и работает в обоих измерениях, по сравнению с четырьмя проходами в вертикальном измерении, используемыми GIF . Это означает, что приближение всего изображения может быть воспринято гораздо быстрее на ранних проходах, особенно если используются алгоритмы интерполяции, такие как бикубическая интерполяция . [1]

История

Метод Adam7 назван в честь Адама М. Костелло, который предложил этот метод 2 февраля 1995 года, а также в честь семи его этапов.

Это перестановка [2] этой пятипроходной схемы [3] , которая ранее была предложена Ли Дэниелом Крокером :

Альтернативные спекулятивные предложения того времени включали переплетение квадратных спиралей и использование кривых Пеано , но они были отвергнуты как чрезмерно сложные.

Пропускает

Пиксели, включенные в каждый проход, и общее количество пикселей, закодированных в этой точке, следующие:

При рендеринге изображение, как правило, интерполируется на более ранних этапах, а не просто визуализируются эти пиксели.

Связанные алгоритмы

Adam7 — это многомасштабная модель данных, похожая на дискретное вейвлет-преобразование с вейвлетами Хаара , хотя она начинается с блока 8×8 и понижает разрешение изображения, а не прореживает ( фильтрация нижних частот , затем понижающая разрешение). Таким образом, она предлагает худшее поведение частоты, показывая артефакты ( пикселизацию ) на ранних стадиях, в обмен на более простую реализацию.

Итерация

Adam7 возникает в результате итерации следующего шаблона:

что можно интерпретировать как «складывание» в вертикальном и горизонтальном измерениях. Аналогично, GIF переплетение1324можно рассматривать как итерацию12узор, но только в вертикальном направлении (12расширяется до1.2.который заполняется как1324).

Использование этого трехпроходного шаблона означает, что первый проход составляет (1/2) 2  = 1/4 (25%) изображения.

Повторение этого шаблона один раз дает схему из 5 проходов; после 3 проходов это дает

который затем заполняется следующим образом:

В 5-проходной схеме первый проход (1/4) 2  = 1/16 (6,25%) изображения.

Повторная итерация дает 7-проходную схему Adam7, где первый проход (1/8) 2  = 1/64 (1,5625%) изображения.

В принципе, это можно итерировать, получая схему с 9 проходами, схему с 11 проходами и т. д., или же можно использовать адаптивное количество проходов, столько, сколько позволяет размер изображения (так что первый проход состоит из одного пикселя), как это обычно бывает в многомасштабном моделировании без масштабирования. В контексте разработки PNG (т. е. для рассматриваемых размеров изображения и скоростей соединения) схема с 7 проходами считалась достаточной [ почему? ] и предпочтительнее простой схемы с 5 проходами.

Ссылки

  1. ^ Введение в PNG - nuwen.net
  2. ^ Костелло, Адам М. (2 февраля 1995 г.). "переплетение пересмотрено: схема Adam7". png-list (список рассылки) . Получено 18.04.2016 . Я немного переделал схему Lee7 (Lee7 — очевидное расширение 5-проходной схемы Ли), придумав схему Adam7
  3. ^ Лейн, Том (1 февраля 1995 г.). «Методы чересстрочной развертки: визуальное тестирование». png-list (список рассылки) . Получено 18.04.2016 . Предложение Ли Крокера о 5-проходной двумерной чересстрочной развертке

Внешние ссылки