TL;DR
MEOW 이미지 포맷은 LSB 스테가노그래피를 이용해 AI 추론에 필요한 메타데이터를 픽셀 내부에 직접 인코딩하는 실험적 포맷이다. PNG와 바이너리 호환성을 유지하면서 엣지 맵, 텍스처 분석, 어텐션 가중치 등을 함께 저장한다. AI 워크플로우에서 이미지 컨텍스트 손실 문제를 해결하려는 시도지만, 포맷 채택이라는 근본적 장벽은 여전히 남아 있다.
배경: 1992년 포맷으로 2025년 AI를 돌리는 문제
JPEG는 1992년, PNG는 1995년에 설계된 포맷이다. 두 포맷 모두 EXIF/XMP 같은 메타데이터 필드를 지원하지만, SNS 업로드, 슬랙 공유, 스크린샷 재포스팅 등의 과정에서 메타데이터는 대부분 소실된다. 문제는 이 메타데이터가 LLM 기반 멀티모달 모델에게 중요한 컨텍스트를 제공한다는 점이다.
이미지가 여러 서비스를 거치는 AI 파이프라인을 생각해보자. 원본 촬영 조건, 카메라 파라미터, 심지어 이전 모델이 생성한 분석 결과까지 전부 사라지고, 다음 모델은 매번 처음부터 같은 분석을 반복해야 한다. 멀티모달 파이프라인에서 이미지가 여러 서비스를 경유하는 대형 플랫폼 환경이라면 이 반복 비용은 더욱 누적될 것으로 예상된다. MEOW는 이 문제에 대한 하나의 해답을 제시한다.
핵심 메커니즘: LSB 스테가노그래피로 AI 컨텍스트를 픽셀에 봉인하기
LSB 인코딩 원리와 저장 용량
LSB(Least Significant Bit) 스테가노그래피는 각 픽셀의 색상값 최하위 비트를 데이터 저장 공간으로 활용하는 기법이다. 8비트 채널 기준으로 픽셀값이 11001010일 때 마지막 비트 0을 1로 바꿔도 색상 차이는 육안으로 식별 불가능하다.
MEOW가 활용하는 저장 용량은 다음 식으로 계산된다.
최대 저장 용량 = H × W × C × 1비트
RGB 3채널 이미지(C=3)를 기준으로, 채널당 1비트씩 LSB를 사용하면 전체 픽셀 데이터 대비 최대 12.5%(= 1/8)의 추가 정보를 내장할 수 있다. 예를 들어 1920×1080 RGB 이미지라면 이론상 최대 약 760KB의 메타데이터를 저장할 수 있다. 단, 이 용량을 모두 사용할 경우 파일 크기가 최대 12.5% 증가할 수 있으며, MEOW가 실제로 얼마나 활용하는지는 내장 데이터 항목의 크기에 따라 달라진다.
def encode_lsb(pixel_value: int, bit: int) -> int:
"""픽셀의 LSB에 1비트 데이터를 인코딩한다."""
return (pixel_value & 0xFE) | (bit & 0x01)
def embed_metadata(image_array, metadata_bits: list[int]):
"""
이미지 배열의 픽셀 LSB에 메타데이터 비트열을 순차 삽입한다.
image_array: numpy array, shape (H, W, C)
metadata_bits: 삽입할 비트 리스트 [0, 1, 1, 0, ...]
"""
flat = image_array.flatten()
if len(metadata_bits) > len(flat):
raise ValueError("메타데이터 크기가 이미지 용량을 초과합니다.")
for i, bit in enumerate(metadata_bits):
flat[i] = encode_lsb(int(flat[i]), bit)
return flat.reshape(image_array.shape)
AI 전용 데이터의 직렬화·압축·복원 메커니즘
MEOW가 픽셀 내부에 저장하는 정보는 단순 태그가 아니다. 다음 여섯 가지 카테고리로 구성된다.
| 항목 | 설명 |
|---|---|
| Edge Detection Maps | 경계선 사전 계산 결과 |
| Texture Analysis Data | 표면 패턴·거칠기·재질 특성 |
| Complexity Scores | 영역별 연산 복잡도 힌트 |
| Attention Weight Maps | 모델이 집중해야 할 영역 강조 |
| Object Relationship Data | 감지된 요소 간 공간적 연결 정보 |
| Future Proofing Space | 예약 비트 (향후 확장용) |
이 데이터가 LSB에 들어가기까지는 세 단계를 거친다.
① 생성 및 직렬화: 엣지 맵은 Canny 등의 알고리즘으로 생성된 2D 배열이고, 어텐션 가중치 맵은 모델 출력 히트맵이다. 이들은 각각 NumPy 배열 형태로 존재하며, numpy.tobytes() 또는 JSON 직렬화를 통해 바이트 스트림으로 변환된다. GitHub 저장소의 구현을 보면 각 항목을 헤더(항목 식별자 + 길이)와 페이로드(실제 데이터 바이트)로 구성된 TLV(Type-Length-Value) 유사 구조로 패킹한다.
② 압축: 직렬화된 바이트 스트림은 zlib 압축을 거쳐 크기를 줄인다. 엣지 맵처럼 0/1 이진 배열이 많은 데이터는 압축률이 높아 실제 LSB 점유 비트 수를 크게 낮출 수 있다.
③ 비트 변환 및 삽입: 압축된 바이트 스트림을 비트 단위로 분해한 뒤, 위 embed_metadata 함수처럼 이미지 픽셀 LSB에 순차 삽입한다. 복원 시에는 역순으로 LSB 추출 → 바이트 재조합 → zlib 해제 → 역직렬화 과정을 수행한다.
import zlib, json, numpy as np
def serialize_edge_map(edge_map: np.ndarray) -> bytes:
"""엣지 맵 배열을 압축 바이트 스트림으로 직렬화한다."""
raw = edge_map.astype(np.uint8).tobytes()
return zlib.compress(raw, level=9)
def deserialize_edge_map(data: bytes, shape: tuple) -> np.ndarray:
"""압축 바이트 스트림에서 엣지 맵을 복원한다."""
raw = zlib.decompress(data)
return np.frombuffer(raw, dtype=np.uint8).reshape(shape)
이 데이터는 이미지를 .meow 포맷으로 변환할 때 자동 생성된다. 모델이 이미지를 수신하는 시점에 이미 엣지 맵과 어텐션 힌트가 준비되어 있으므로, 전처리 단계를 반복 수행할 필요가 없다.
PNG 역호환성 전략
MEOW의 가장 전략적인 설계 결정은 PNG 바이너리 호환성이다. .meow 파일의 확장자를 .png로 변경하면 일반 이미지 뷰어에서 정상적으로 열린다. LSB에 인코딩된 데이터는 일반 렌더러가 무시하는 영역에 존재하기 때문이다. 이는 “새 포맷은 채택되지 않는다”는 역사적 패턴을 우회하려는 의도적인 설계다.

한계와 현실적 제약
1. 포맷 채택 문제는 기술로 해결되지 않는다
저자 스스로 “혁신적 이미지 포맷 대부분이 채택 실패로 소멸했다”고 인정한다. JPEG 2000, WebP 초기, HEIF 모두 기술적으로 우수했지만 생태계 전환 비용 앞에서 수년간 고전했다. MEOW의 PNG 호환 전략은 영리하지만, AI 파이프라인에서 MEOW 메타데이터를 실제로 읽고 활용하는 모델이 없다면 포맷의 가치는 발현되지 않는다.
2. 자동 생성 데이터의 정확도 미검증
변환 시 자동 생성되는 엣지 맵, 어텐션 가중치 등의 품질에 대한 정량적 평가가 제시되지 않았다. “most AI-specific features”라는 표현이 암시하듯, 완전한 자동화는 보장되지 않는다. 잘못된 어텐션 맵이 내장된 이미지가 모델 추론에 노이즈를 추가할 가능성도 배제할 수 없다.
3. 압축 내성의 실제 한계
저자는 “공유, 압축, 스크린샷 재포스팅 사이클에서도 데이터가 생존한다”고 주장하지만, JPEG 재압축처럼 픽셀값을 직접 변형하는 손실 압축에는 LSB 데이터가 취약하다. PNG 계열 무손실 처리에서는 생존하지만, JPEG 변환이 개입하는 순간 LSB 데이터는 손상된다.
결론
MEOW 이미지 포맷은 AI 워크플로우에서 반복적으로 발생하는 전처리 비용과 메타데이터 손실 문제를 LSB 스테가노그래피로 해결하려는 실험적 접근이다. 기술적 아이디어 자체는 유효하며, 특히 멀티모달 파이프라인에서 이미지가 여러 서비스를 경유하는 대형 플랫폼 환경에서는 유사한 설계 패턴을 내부 포맷에 적용하는 것을 고려해볼 수 있다.
단, 현재 상태는 프로토타입 수준이다. 자동 생성 메타데이터의 정확도 벤치마크, 손실 압축 환경에서의 데이터 내성 측정, 그리고 실제 모델 추론 성능 개선 수치가 제시되기 전까지는 프로덕션 도입보다는 아이디어 차원에서 평가하는 것이 적절하다.
출처: https://github.com/Kuberwastaken/meow