아담7 알고리즘

아담7 알고리즘(영어: Adam7 algorithm)은 PNG 파일에 사용되는 일종의 인터레이싱 알고리즘(interlacing algorithm)으로, 1995년에 이를 발표한 아담 코스텔로(Adam M. Costello)의 이름을 따 명명되었다.

16x16 크기의 비트맵에 대하여, Adam7 인터레이싱 알고리즘을 적용하는 그림.

개요

인터레이스된(interlaced) PNG 이미지는 여러 작은 이미지로 나뉘어야 하는데, 다음과 같은 8x8 패턴을 따라 전체 이미지가 작은 이미지로 나뉘게 되어 있다.

1 6 4 6 2 6 4 6
7 7 7 7 7 7 7 7
5 6 5 6 5 6 5 6
7 7 7 7 7 7 7 7
3 6 4 6 3 6 4 6
7 7 7 7 7 7 7 7
5 6 5 6 5 6 5 6
7 7 7 7 7 7 7 7

이런 식으로 나뉜 다음 여러 작은 이미지들이 번호 순서대로 PNG 파일에 저장된다.

아담7 알고리즘은 x, y 축 모두를 사용한 (2차원의) 7개의 패스(pass)를 이용한다. 반면 GIF는 4개의 패스(pass)를 이용하며 오직 수직 방향만 이용한다. 이것은 좀 더 적은 수의 패스(pass) 상태에서도 사람들로 하여금 전체 이미지를 더 빨리 인식하게 해 준다는 말이 된다.

크로커의 5-패스 방법

아담7 알고리즘은 이전에 발표되었던 리 다니엘 크로커(Lee Daniel Crocker)의 5-패스(5-pass) 방법을 개선한 것이었다. 크로커의 방법은 다음과 같다.

1 4 2 4
5 5 5 5
3 4 3 4
5 5 5 5

같이 보기

  • PNG
  • GIF

외부 링크

  • 아담7 인터레이싱과 GIF 인터레이싱의 비교 (애니메이션)
  • PNG (Portable Network Graphics) Specification, Version 1.2
    • PNG Spec. v1.2. 인터레이스드 데이터 오더 부분