티스토리 뷰

1. PNG 파일 개요
PNG(Portable Network Graphics)는 래스터 그래픽 파일 형식으로, 무손실 데이터 압축을 지원합니다. PNG는 GIF의 특허 문제를 해결하기 위해 개발되었으며, 트루컬러(Truecolor), 알파 채널(Alpha Channel)을 포함한 다양한 색상 옵션을 제공합니다. PNG 파일의 구조는 효율적이고 확장 가능하도록 설계되었습니다.
1.1 주요 특징
- 무손실 압축: 데이터 손실 없이 압축 가능
- 다양한 색상 지원: 24비트 RGB, 32비트 RGBA, 그레이스케일 등 지원
- 확장성: 청크(Chunk)를 활용한 유연한 확장
2. PNG 파일의 구조

2.1 파일 시그니처 (File Signature)
PNG 파일은 고정된 8바이트 시그니처로 시작합니다:
89 50 4E 47 0D 0A 1A 0A
이 시그니처는 PNG 파일임을 식별하며, 각 바이트는 특정 목적을 가집니다.
값 (16진수)의미
89 | 8비트 데이터를 지원하지 않는 시스템 감지 |
50 4E 47 | ASCII로 "PNG" |
0D 0A | DOS 스타일 줄 끝 (CRLF) |
1A | 파일의 끝을 나타내는 문자 |
0A | 유닉스 스타일 줄 끝 (LF) |
2.2 청크 (Chunk)
PNG는 청크 단위로 데이터를 저장하며, 각 청크는 다음과 같은 구조를 가집니다:
| Length (4 byte) | Chunk Type (4 byte) | Chunk Data (N byte) | CRC (4 byte) |
청크의 종류
- Critical Chunk (필수): 디코더가 반드시 해석해야 하는 청크
- IHDR: 이미지 헤더, 필수 정보 포함
- IDAT: 이미지 데이터, 압축된 픽셀 데이터 저장
- IEND: 파일의 끝을 나타냄
- Ancillary Chunk (보조): 선택적 정보 제공
- tEXt: 텍스트 메타데이터
- PLTE: 색상 팔레트
3. 주요 청크 상세
3.1 IHDR (Image Header)
IHDR 청크는 PNG 파일의 첫 번째 청크로, 이미지의 기본 정보를 포함합니다. IHDR의 구조는 다음과 같습니다:
| Length: 13 bytes | Chunk Type: IHDR | Chunk Data (13 bytes) | CRC |
IHDR 데이터 구성
- Width & Height: 이미지의 폭과 높이 (각 4바이트)
- Bit Depth: 픽셀당 비트 수 (1, 2, 4, 8, 16)
- Color Type: 색상 구성 방식
- 0: 그레이스케일
- 2: 트루컬러 (RGB)
- 3: 인덱스 색상
- 4: 그레이스케일 + 알파
- 6: 트루컬러 + 알파
- Compression Method: 압축 방식 (DEFLATE 사용)
- Filter Method: 필터링 방식 (현재 0만 사용)
- Interlace Method: 인터레이스 여부 (0: 없음, 1: Adam7)
3.2 IDAT (Image Data)
IDAT 청크는 실제 이미지 데이터가 저장되는 부분입니다. 데이터는 필터링 및 DEFLATE 압축을 거쳐 저장됩니다.
인코딩 과정
Pixel Data → Filter → Compression → IDAT
디코딩 과정
IDAT → Decompression → Unfilter → Pixel Data
IDAT는 여러 개의 청크로 나눠질 수 있으며, 모든 IDAT 청크가 있어야 이미지를 디코딩할 수 있습니다.
3.3 IEND (Image End)
IEND 청크는 PNG 파일의 끝을 나타내며, 데이터 필드는 비어 있습니다:
| Length: 0 bytes | Chunk Type: IEND | Chunk Data: None | CRC |
PLTE 청크가 있는 경우 PNG 구조

PLTE 청크가 없는 경우 PNG 구조

4. 필터링 및 압축
4.1 필터링 (Filtering)
필터링은 데이터 압축률을 높이기 위해 사용되며, 각 스캔라인(row)에 대해 적용됩니다. 필터링 방식은 다음과 같습니다:
Type | Name | 설명 |
0 | None | 필터링 없음 |
1 | Sub | 왼쪽 픽셀 값 사용 |
2 | Up | 위쪽 픽셀 값 사용 |
3 | Average | 왼쪽, 위쪽 픽셀 평균 |
4 | Paeth | Paeth 예측 알고리즘 사용 |
4.2 압축
PNG는 DEFLATE 알고리즘을 사용하며, 무손실 압축을 지원합니다.
'Digital Forensics > File Structure' 카테고리의 다른 글
코덱 - H.264, H.265 (0) | 2025.03.11 |
---|---|
MP4 File format Structure (0) | 2025.03.10 |
AVI File format Structure (0) | 2025.03.10 |
ZIP 파일 구조 (0) | 2025.01.27 |