PNG 파일을 해독하는 각 단계

Each step of decoding a PNG (2022)

PNG 파일을 디코딩하는 전체 과정을 단계별로 살펴본다. 파일은 여러 청크로 구성되며, IDAT 청크에 압축된 이미지 데이터가 담긴다. IDAT 데이터를 모아 zlib로 압축을 풀면 필터가 적용된 원시 데이터가 나오고, 각 줄의 필터를 제거하면 원본 이미지가 복원된다. 인터레이스된 PNG는 Adam7 방식으로 7개의 하위 이미지로 나뉘어 순차적으로 로드된다. Average 필터의 오버플로 버그로 인한 깨진 이미지 사례도 소개한다.

압축된 데이터는 인코딩하는 저엔트로피 데이터보다 더 높은 엔트로피를 보여야 한다.

이 날의 다른 글

2026-10-18