Алгоритм Adam7 - Adam7 algorithm
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 использует семь проходов и работает в обоих измерениях, по сравнению с четырьмя проходами в вертикальном измерении, используемом Гифка. Это означает, что приближение всего изображения может быть воспринято намного быстрее на ранних проходах, особенно если алгоритмы интерполяции, такие как бикубическая интерполяция используются.[1]
История
Adam7 назван в честь Адама М. Костелло, предложившего метод 2 февраля 1995 г., после семи этапов.
Это перестановка[2] этой пятипроходной схемы[3] что ранее было предложено Ли Дэниел Крокер:
1 5 3 55 4 5 43 5 2 55 4 5 4 |
Альтернативные спекулятивные предложения в то время включали переплетение квадратной спирали и использование Кривые Пеано, но они были отвергнуты как чрезмерно сложные.
Проходит
Пиксели, включенные в каждый проход, и общее количество пикселей, закодированных в этой точке, следующие:
Передано 1, 1/64 = 1,5625%
2 балла, 1/32 = 3,125%
Передача 3, 1/16 = 6,25%
4 балла, 1/8 = 12,5%
Пройден 5, 1/4 = 25%
Пройден 6, 1/2 = 50%
Пройдено 7, 1/1 = 100%
При рендеринге изображение обычно будет интерполироваться на более ранних этапах, а не только рендерингом этих пикселей.
Связанные алгоритмы
Adam7 - это многомасштабная модель данных, похожая на дискретное вейвлет-преобразование с Вейвлеты Хаара, хотя он начинается с блока 8 × 8, и субдискретизация изображение, а не уничтожающий (фильтрация нижних частот, затем понижающая дискретизация). Таким образом, он предлагает худшее частотное поведение, показывая артефакты (пикселизация ) на ранних этапах в обмен на более простую реализацию.
Итерация
Adam7 является результатом повторения следующего шаблона:
1233 |
что можно интерпретировать как «складывание» в вертикальном и горизонтальном измерениях. Точно так же чересстрочная развертка GIF 1324 можно рассматривать как итерацию 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-список (Список рассылки). Получено 2016-04-18.
Я немного изменил схему Lee7 (Lee7 - очевидное расширение 5-проходной схемы Lee), придумав схему Adam7
- ^ Лейн, Том (1 февраля 1995 г.). «Методы чересстрочной развертки: визуальное тестирование». png-список (Список рассылки). Получено 2016-04-18.
Предложение Ли Крокера с 5-проходным двухмерным чересстрочным изображением