Adam7 - это алгоритм чересстрочной развертки для растровых изображений , наиболее известный как схема чересстрочной развертки, которая может использоваться в изображениях PNG . Изображение с чересстрочной разверткой Adam7 разбито на семь субизображений, которые определяются путем репликации этого шаблона 8 × 8 по всему изображению.
1 6 4 6 2 6 4 67 7 7 7 7 7 7 75 6 5 6 5 6 5 67 7 7 7 7 7 7 73 6 4 6 3 6 4 67 7 7 7 7 7 7 75 6 5 6 5 6 5 67 7 7 7 7 7 7 7 |
Затем фрагменты изображений сохраняются в файле изображения в порядке номеров.
Adam7 использует семь проходов и работает в обоих измерениях, по сравнению с четырьмя проходами в вертикальном измерении, используемом GIF . Это означает, что приближение всего изображения может быть воспринято намного быстрее на ранних этапах, особенно если используются алгоритмы интерполяции, такие как бикубическая интерполяция . [1]
История [ править ]
Adam7 назван в честь Адама М. Костелло, предложившего метод 2 февраля 1995 г., после семи этапов.
Это перестановка [2] этой пятипроходной схемы [3], которая ранее была предложена Ли Дэниелом Крокером :
1 5 3 55 4 5 43 5 2 55 4 5 4 |
Альтернативные спекулятивные предложения в то время включали переплетение квадратной спирали и использование кривых Пеано , но они были отклонены как чрезмерно сложные.
Проходит [ править ]
Пиксели, включенные в каждый проход, и общее количество пикселей, закодированных в этой точке, следующие:
При рендеринге изображение обычно интерполируется на более ранних этапах, а не только рендеринг этих пикселей.
Связанные алгоритмы [ править ]
Adam7 - это многомасштабная модель данных, аналогичная дискретному вейвлет-преобразованию с вейвлетами Хаара , хотя она начинается с блока 8 × 8 и субдискретизирует изображение, а не децимирует ( фильтрация нижних частот , затем понижающая дискретизация). Таким образом, он предлагает худшее частотное поведение, демонстрируя артефакты ( пикселирование ) на ранних этапах в обмен на более простую реализацию.
Итерация [ править ]
Adam7 возникает в результате повторения следующего шаблона:
1233 |
что можно интерпретировать как «складывание» в вертикальном и горизонтальном измерениях. Аналогично, чересстрочная развертка GIF1324 можно рассматривать как итерацию 12 узор, но только в вертикальном направлении (12 расширяется до 1.2. который заполняется как 1324).
Использование этого трехпроходного шаблона означает, что первый проход составляет (1/2) 2 = 1/4 (25%) изображения.
Повторение этого шаблона один раз дает 5-проходную схему; после 3 проходов это дает
1. 2.. . . .3. 3.. . . . |
который затем заполняется:
1 4 2 45 5 5 53 4 3 45 5 5 5 |
В 5-проходном шаблоне первый проход (1/4) 2 = 1/16 (6,25%) изображения.
Повторение снова дает 7-проходную схему Adam7, где первый проход (1/8) 2 = 1/64 (1,5625%) изображения.
В принципе, это может быть повторено, давая 9-проходную схему, 11-проходную схему и т. Д., Или, альтернативно, можно использовать адаптивное количество проходов, столько, сколько позволяет размер изображения (так что первый проход состоит из один пиксель), как это обычно бывает при многомасштабном безмасштабном моделировании. В контексте разработки PNG (т. Е. Для рассматриваемых размеров изображения и скорости соединения) 7-проходная схема была сочтена достаточной и предпочтительной по сравнению с простой 5-проходной схемой.
Ссылки [ править ]
- ^ Введение в PNG - nuwen.net
- ↑ Костелло, Адам М. (2 февраля 1995 г.). «Пересмотр переплетения: схема Adam7» . png-list (список рассылки) . Проверено 18 апреля 2016 .
Я немного изменил схему Lee7 (Lee7 - очевидное расширение 5-проходной схемы Lee), придумав схему Adam7
CS1 maint: discouraged parameter (link) - ↑ Лейн, Том (1 февраля 1995 г.). «Методы чересстрочной развертки: визуальное тестирование» . png-list (список рассылки) . Проверено 18 апреля 2016 .
Предложение Ли Крокера с пятипроходным двухмерным чересстрочным изображением
CS1 maint: discouraged parameter (link)
Внешние ссылки [ править ]
- Анимированное сравнение чересстрочной развертки Adam7 и GIF