MZC (Minimal Zip Concept)는 단순한 압축기를 넘어, 바이트 단위 및 비트 단위의 직렬화, RLE, 사전 대치, LZ77 슬라이딩 윈도우, tANS 엔트로피 코더, 컨텍스트 믹싱 산술 코딩 및 미디어 예측 필터까지 무손실 압축의 핵심 구조 전체를 설계하며 학습하는 러스트 지향 압축 엔진입니다.
압축 오버헤드를 극적으로 배제하고 성능을 조율하기 위해 추가된 주요 요소들입니다.
과거 비트 스트림의 출현 패턴을 0차, 1차, 2차(해시 직접 매핑) 문맥으로 나누어 실시간 예측하고, 가중치 결합 확률을 정밀 산술 영역으로 코딩하여 엔트로피 한계를 뛰어넘습니다.
2D 가로/세로 그라디언트 픽셀의 중복을 없애는 PNG Paeth 필터와, 16비트 PCM 오디오 신호의 인접 파형 경향성을 2차 선형 예측하는 LPC 필터 전처리를 제공하여 압축 효율을 극대화합니다.
Rayon 병렬 스레드 가동률 및 Throughput 곡선을 보는 모니터와 함께, 파일들의 사전을 학습하는 Trainer 탭 및 tANS 알고리즘 상태 전이를 추적하는 Plot 시뮬레이터를 통합 기동합니다.
MZC 엔진은 버전 1부터 최신 버전 7까지 유연한 이중 파싱 분기(Double-Dispatch)를 수행합니다.
압축 알고리즘의 기초인 RLE(Run-Length Encoding)를 구현하여, 바이트 단위 직렬화 파이프라인의 구조를 세운 기초 명세입니다.
[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...]
자주 등장하는 바이트 시퀀스를 사전에 등록하고, 토큰 번호로 일치 항목을 매핑하는 멀티스레드 병렬 압축 규격입니다.
[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...]
데이터의 이전 윈도우 공간에서 반복 영역을 찾아 오프셋 거리(Distance)와 길이(Length) 정보로 인코딩하는 LZ77 사양이 통합되었습니다.
[Magic Number: "MZC3"] (4B)
[Version: 0x03] (1B)
[Algorithm: LZ77] (1B)
... (Same 56B Header)
----------------------
[Block Type: 0x03] (1B)
[Distance offset] (2B)
[Match length] (2B)
사전 정의된 고정 허프만 트리를 폐기하고, 청크 파일의 엔트로피 빈도수를 실시간 계산하여 최적화된 Canonical 트리를 동적으로 생성합니다.
[Magic Number: "MZC4"] (4B)
[Version: 0x04] (1B)
...
----------------------
[Compressed Tree RLE Header]
- Zero Runs / Non-Zero Runs
[Bit-Packed Payload stream]
바이트 정렬 한계를 완전히 무너뜨리고 8개 단위 플래그로 묶은 비트스트림 구조로 압축 메타데이터 오버헤드를 원천적으로 제거한 사양입니다.
[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...]
Huffman의 1비트 한계를 깨부수는 Asymmetric Numeral Systems(tANS) 부호화 엔진과 중복 배제를 위한 공유 사전 방식을 채택했습니다.
[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...]
과거 문맥 상태(0~2차)를 결합하는 컨텍스트 믹싱 모델 및 산술 레인지 부호화기, 그리고 이미지/오디오 전용 예측 전처리 필터를 지원합니다.
[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...]
별도의 설치 없이 웹 브라우저에서 직접 MZC 압축 및 복원 엔진을 실행해보세요.
LZ77 슬라이딩 윈도우 알고의 동작 과정을 시각적으로 확인해 보세요.
비대칭 수계(tANS) 상태 전이 및 컨텍스트 믹싱 가중치 갱신(LMS) 과정을 실시간으로 확인해 보세요.
비대칭 수계(ANS) 엔트로피 인코더 작동 중, 심볼 값에 따라 상태값 x가 천이하고 한계를 넘을 때마다 비트스트림으로 방출되는 과정입니다.
CLI 커맨드와 미려한 GUI 환경을 모두 동일한 Rust 코어 라이브러리로 이용할 수 있습니다.