INDEXED REUSE

원본 하나, 달라지는 모든 칸

색 표와 타일 원본을 편집하며 번호가 가리키는 범위를 확인하세요.

공유 색상 또는 타일 픽셀을 바꾸면 같은 번호를 쓰는 위치가 함께 바뀝니다. 번호 자체의 비용도 비교합니다.

원인 · 해결 · 대가

원본 하나, 달라지는 모든 칸

문제 · 같은 색과 무늬를 매번 복사

번호 배열과 공유 원본을 분리하면 반복을 줄일 수 있습니다. 색 번호는 RGB 팔레트를, 타일 번호는 8×8 픽셀 원본을 가리킵니다. 둘의 번호 단위는 다릅니다.

팔레트도 비용에 포함

16×16·13색의 RGB24는 768 B입니다. 4비트 색 번호는 128 B, RGB 색 표는 39 B로 합계 167 B입니다. 이 화면은 필요한 ceil(log₂ K) 비트를 연속으로 채우는 자체 배열을 실제로 pack/unpack합니다. PNG의 유효 인덱스 깊이 1·2·4·8비트 규칙을 그대로 재현하는 파일 인코더는 아닙니다.

타일 원본과 번호를 함께 세기

100칸을 16 B씩 복사하면 공통 팔레트 12 B까지 1,612 B입니다. 원본 10개와 1 B 번호 100개는 160 + 100 + 12 = 272 B입니다. 원본이 모두 다르면 1,712 B로 오히려 커집니다. (N−U)S가 번호와 추가 비용보다 커야 이득입니다. 공통 속성 비용은 두 방식에 똑같이 더합니다.

공유 편집의 영향과 모델 범위

색 표 하나를 바꾸면 같은 번호의 모든 픽셀이, 타일 픽셀 하나를 바꾸면 같은 타일을 참조하는 모든 칸이 바뀝니다. 저장 원본은 자동으로 다시 중복 제거하지 않습니다. 지도 번호와 2비트 원본을 실제 바이트 배열에서 복원해 비교하며, 화면에 필요한 80×80 색 번호 배열은 압축 비용과 별개입니다. 파일 헤더·PNG 압축·GPU 메모리·NES 주소와 하드웨어 동작은 측정하지 않습니다.

W3C PNG · IHDR·PLTE·IDAT
Godot · TileMapLayer