본문 바로가기
💻 컴퓨터 시스템

GIF 최적화 gifski pngquant 팔레트 생성 기법

by 비타민찌 2025. 8. 20.
728x90

 

GIF 파일 형식에는 다음과 같은 한계점이 있다. 

 

1. 각 프레임마다 최대 256색 팔레트만 가능.

2. 프레임마다 전혀 다른 LCT를 만들면, 매 프레임 팔레트가 튀어서 시각적으로 깜빡임(color flicker) 현상이 생김.

 

고품질 GIF 생성 프로그램인 gifski의 gif 생성법은

프레임별로 팔레트를 독립적으로 생성하되,

이전, 다음 프레임의 색 정보를 참고해서 팔레트를 만든다.

 

-> 이렇게 하면 연속된 프레임들이 비슷한 팔레트를 공유하게 되어 색상 변화가 부드럽고 자연스러워짐.

즉, “색의 히스토그램을 프레임 간 통합/보정”하는 과정이라고 보면 됨.

 

 

1. pngquant의 팔레트 생성

  • 대상: 단일 이미지(고정된 한 프레임)
  • 방식:
    • 이미지 픽셀의 색 분포를 분석 → 히스토그램 생성
    • NeuQuant나 K-means 같은 벡터 양자화(현재 pngquant은 modified median cut + k-means 개선형)을 사용
    • 최대 256색 팔레트 생성 (PNG-8)
  • 특징: 한 번 생성된 팔레트는 고정 → 시간 축 개념 없음

즉, pngquant은 정적인 팔레트 최적화 도구.

 

 

2. gifski의 Cross-frame palettes

  • 대상: 움직이는 GIF의 여러 프레임
  • 방식:
    • GIF는 프레임마다 팔레트(Local Color Table, LCT)를 둘 수 있음 (반면 GCT는 하나의 전역 팔레트).
    • gifski는 각 프레임을 독립적으로 팔레트화하지만, 단순 독립 처리 시 깜빡임(flicker)이 생김.
    • 그래서 이전 프레임의 팔레트 정보를 고려하면서 새로운 프레임 팔레트를 생성 → 색 인덱스 안정화 + 시간적 일관성 유지.
    • 즉, 프레임 간 색상 전환 시 "급격히 변하지 않도록" 조정하는 과정이 Cross-frame palettes.
  • 특징:
    • gifski는 전역 팔레트(GCT)를 고집하지 않고, 각 프레임에 LCT(Local Color Table)를 둔 뒤, 프레임 간 연속성을 보장하는 방식.
    • 이게 일반적인 pngquant 스타일과의 핵심 차이점임.

 

3. 정리

 

  • pngquant: 한 장의 이미지 → 256색 최적 팔레트.
  • gifski: 여러 장의 연속 이미지 → 프레임별 LCT를 만들되, 인접 프레임 간 색상을 연속적으로 배치

전역 팔레트(GCT)보다 색 충실도가 높음.

 

 

728x90

댓글