🚀 MZC7 format engine

Rust 기반 무손실 압축의 모든 원리를 담다

MZC (Minimal Zip Concept)는 단순한 압축기를 넘어, 바이트 단위 및 비트 단위의 직렬화, RLE, 사전 대치, LZ77 슬라이딩 윈도우, tANS 엔트로피 코더, 컨텍스트 믹싱 산술 코딩 및 미디어 예측 필터까지 무손실 압축의 핵심 구조 전체를 설계하며 학습하는 러스트 지향 압축 엔진입니다.

최신 앱 릴리스 v0.12.1
MZC Dashboard Visual

주요 고도화 기능 명세

압축 오버헤드를 극적으로 배제하고 성능을 조율하기 위해 추가된 주요 요소들입니다.

🧠

컨텍스트 믹싱 (MZC7)

과거 비트 스트림의 출현 패턴을 0차, 1차, 2차(해시 직접 매핑) 문맥으로 나누어 실시간 예측하고, 가중치 결합 확률을 정밀 산술 영역으로 코딩하여 엔트로피 한계를 뛰어넘습니다.

🖼️

미디어 전처리 예측 필터

2D 가로/세로 그라디언트 픽셀의 중복을 없애는 PNG Paeth 필터와, 16비트 PCM 오디오 신호의 인접 파형 경향성을 2차 선형 예측하는 LPC 필터 전처리를 제공하여 압축 효율을 극대화합니다.

📊

다중 탭 GUI 대시보드

Rayon 병렬 스레드 가동률 및 Throughput 곡선을 보는 모니터와 함께, 파일들의 사전을 학습하는 Trainer 탭 및 tANS 알고리즘 상태 전이를 추적하는 Plot 시뮬레이터를 통합 기동합니다.

MZC 하위 호환성 포맷 아키텍처

MZC 엔진은 버전 1부터 최신 버전 7까지 유연한 이중 파싱 분기(Double-Dispatch)를 수행합니다.

MZC1 Specification

RLE 기반 초급 포맷

압축 알고리즘의 기초인 RLE(Run-Length Encoding)를 구현하여, 바이트 단위 직렬화 파이프라인의 구조를 세운 기초 명세입니다.

  • 54바이트의 고정 파일 헤더 제공
  • 런 블록(Type 0x01)과 리터럴 블록(Type 0x00)만 사용
  • 단일 스레드 기반의 동작 및 기본 SHA-256 체크섬
[Magic Number: "MZC1"] (4B)
[Version: 0x01] (1B)
[Algorithm: RLE] (1B)
[Original Size] (8B)
[Payload Size] (8B)
[Original SHA-256] (32B)
----------------------
[Block Type] (1B)
[Block Length] (2B)
[Payload Data...]
                    
MZC2 Specification

하이브리드 병렬 사전식 압축

자주 등장하는 바이트 시퀀스를 사전에 등록하고, 토큰 번호로 일치 항목을 매핑하는 멀티스레드 병렬 압축 규격입니다.

  • Rayon 라이브러리를 동원한 1MB 청크 단위 병렬 맵-리듀스
  • 사전 인프라 추가로 파일 헤더 크기가 56바이트로 확장
  • RLE와 사전 토큰(Token Block, Type 0x02)의 Hybrid 탑재
[Magic Number: "MZC2"] (4B)
[Version: 0x02] (1B)
[Algorithm: Hybrid] (1B)
[Original Size] (8B)
[Payload Size] (8B)
[Dictionary Size] (2B)
[Original SHA-256] (32B)
----------------------
[Dictionary Section]
[Chunk Block Data...]
                    
MZC3 Specification

LZ77 슬라이딩 윈도우 지원

데이터의 이전 윈도우 공간에서 반복 영역을 찾아 오프셋 거리(Distance)와 길이(Length) 정보로 인코딩하는 LZ77 사양이 통합되었습니다.

  • 백레퍼런스 블록(BackRef Block, Type 0x03) 추가
  • 32KB 크기의 슬라이딩 윈도우 룩어헤드 버퍼 탐색
  • 정적 허프만 코딩을 연동한 2차 비트 스트림 추가 압축
[Magic Number: "MZC3"] (4B)
[Version: 0x03] (1B)
[Algorithm: LZ77] (1B)
... (Same 56B Header)
----------------------
[Block Type: 0x03] (1B)
[Distance offset] (2B)
[Match length] (2B)
                    
MZC4 Specification

Canonical Dynamic Huffman Coding

사전 정의된 고정 허프만 트리를 폐기하고, 청크 파일의 엔트로피 빈도수를 실시간 계산하여 최적화된 Canonical 트리를 동적으로 생성합니다.

  • Dynamic Huffman Tree 헤더 크기를 20~40B 미만으로 억제하는 독자 트리 RLE 탑재
  • 심볼 트리 깊이를 30비트 이하로 보장하는 정합 설계
  • 소용량 파일에서 압축 효율 극대화
[Magic Number: "MZC4"] (4B)
[Version: 0x04] (1B)
...
----------------------
[Compressed Tree RLE Header]
 - Zero Runs / Non-Zero Runs
[Bit-Packed Payload stream]
                    
MZC5 Specification

비트 레벨 스트림 패킹 및 하이엔드 전처리

바이트 정렬 한계를 완전히 무너뜨리고 8개 단위 플래그로 묶은 비트스트림 구조로 압축 메타데이터 오버헤드를 원천적으로 제거한 사양입니다.

  • 8블록 단위 16비트 플래그 스트림으로 타입 접두사 완전 대체
  • BCJ 상대 주소 대치 필터 및 Delta 필터 탑재
  • 디스크 쓰기/읽기 및 디코딩 연산 전체에 멀티스레드 정밀 바운드 예외 차단 기술 적용
[Magic Number: "MZC5"] (4B)
[Version: 0x05] (1B)
[Algorithm_Flag: Core | Preprocessors] (1B)
... (56B Header)
----------------------
[RLE/Huffman Header Section]
[Flag Stream: 2bit * 8 blocks] (2B)
[Sequential Block payload stream...]
                    
MZC6 Specification

tANS 엔트로피 & 공유 사전 학습

Huffman의 1비트 한계를 깨부수는 Asymmetric Numeral Systems(tANS) 부호화 엔진과 중복 배제를 위한 공유 사전 방식을 채택했습니다.

  • 분수 비트 단위 압축을 실현하는 유한 상태 머신 기반 tANS 코더 탑재
  • 여러 샘플로부터 중복 시퀀스를 추출하여 학습하는 전역 공유 사전(.dict) 시스템
  • 개별 청크 단위 사전 선언을 스킵하여 메타 오버헤드 원천 배제
[Magic Number: "MZC6"] (4B)
[Version: 0x06] (1B)
[Algorithm_Flag: Core | ANS Filter] (1B)
... (56B Header)
----------------------
[Global Shared Dictionary] (dictionary_size)
[Chunk 1 Header: Original | Combined | Compressed] (12B)
[Chunk 1 tANS Payload Stream...]
                    
MZC7 Specification

컨텍스트 믹싱 & 미디어 최적화 필터

과거 문맥 상태(0~2차)를 결합하는 컨텍스트 믹싱 모델 및 산술 레인지 부호화기, 그리고 이미지/오디오 전용 예측 전처리 필터를 지원합니다.

  • 0차/1차/2차 비트 발생 확률 가중치 혼합 및 정밀 산술(Range) 코더 탑재
  • 2D 이미지 데이터 중복을 없애는 PNG Paeth 필터 및 16비트 오디오를 위한 LPC 전처리 필터 제공
  • RFC 1951/1952 표준 호환 GZIP 디코더(inflate) CLI 내장
  • Trainer 탭 및 tANS Plot 그래프 시뮬레이션을 탑재한 멀티 탭 GUI 대시보드
[Magic Number: "MZC7"] (4B)
[Version: 0x07] (1B)
[Algorithm_Flag: Core | Entropy | Media_Filter] (1B)
... (56B Header)
----------------------
[Global Shared Dictionary] (dictionary_size)
[Chunk 1 Header: Original | Combined | Compressed] (12B)
[Chunk 1 Context-Mixed Range Stream...]
                    

Wasm 대화형 웹 데모

별도의 설치 없이 웹 브라우저에서 직접 MZC 압축 및 복원 엔진을 실행해보세요.

📥
여기에 파일을 드래그 앤 드롭 하거나 클릭하세요
최대 20MB 이내의 파일을 권장합니다.
filename.txt 0 KB
사전 로드되지 않음 (압축/해제 시 자동 적용)
3
원본 크기
0 B
처리 크기
0 B
저장 공간 절약
0.0%
소요 시간
0 ms

LZ77 슬라이딩 윈도우 시뮬레이터

LZ77 슬라이딩 윈도우 알고의 동작 과정을 시각적으로 확인해 보세요.

16 글자
8 글자

tANS & Context Mixing 시뮬레이터

비대칭 수계(tANS) 상태 전이 및 컨텍스트 믹싱 가중치 갱신(LMS) 과정을 실시간으로 확인해 보세요.

tANS 상태 변이 및 비트 방출 시뮬레이터

비대칭 수계(ANS) 엔트로피 인코더 작동 중, 심볼 값에 따라 상태값 x가 천이하고 한계를 넘을 때마다 비트스트림으로 방출되는 과정입니다.

tANS 상태 변화 추이 (State x)
방출된 비트 스트림 (Emitted Bits)

실행 가이드 및 사용법

CLI 커맨드와 미려한 GUI 환경을 모두 동일한 Rust 코어 라이브러리로 이용할 수 있습니다.

PowerShell / Terminal Rust Cargo
# 1. 깃 클론 및 폴더 이동 git clone https://github.com/jeiel85/minimal-zip-concept.git cd minimal-zip-concept # 2. 러스트 빌드 (릴리즈 모드) cargo build --release # 3. CLI를 이용한 고성능 MZC7 압축 실행 (CM 모드, PNG 필터 활성화) ./target/release/mzc compress input_image.png output.mzip -m hybrid -e cm --png # 4. 압축 파일 디코딩 및 복원 검사 ./target/release/mzc decompress output.mzip restored.png # 5. GZIP 표준 압축 파일 해제 (RFC 1952 디코딩) ./target/release/mzc inflate archive.gz restored.txt # 6. 그래픽 GUI 성능 모니터 대시보드 뷰어 기동 (다중 탭 지원) ./target/release/mzc gui