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 проходами.
Я немного переделал схему Lee7 (Lee7 — очевидное расширение 5-проходной схемы Ли), придумав схему Adam7
Предложение Ли Крокера о 5-проходной двумерной чересстрочной развертке