01 · PNG Median-Cut パレット量子化と Floyd-Steinberg ディザリング
Module 01 · PNG-8 Median-Cut & Deflate
SlimCodec はメモリ上の 32-bit RGBA ピクセル配列を 3 次元色空間の Median-Cut(中央値分割)で 16〜256 色のインデックスパレットへ量子化し、Floyd-Steinberg 誤差拡散と CompressionStream Deflate を適用して PNG 容量を 55%〜80% 削減します(送信 0 bytes)。
Palette Split = argmax_{R,G,B} (MaxChannel - MinChannel) at Median Pixel Count
Dither Error (x,y) = [7/16 → (x+1,y), 3/16 → (x-1,y+1), 5/16 → (x,y+1), 1/16 → (x+1,y+1)]
02 · WebP / JPEG 知覚量子化と EXIF 位置情報メタデータの 100% 除去
Module 02 · Perceptual WebP & JPEG
SlimCodec はオフスクリーン Canvas 上でピクセルバッファを再構築することでカメラ EXIF や GPS 座標、サムネイルを 100% 自動消去し、1%〜100% の品質指定と 4K/1080p/720p リサイズを 1 second 以内に実行して高圧縮 WebP/JPEG を生成します。
Output Bytes = Canvas2D.toBlob(mime="image/webp"|"image/jpeg", quality ∈ [0.01, 1.00])
Privacy Guarantee = 100% EXIF / GPS / IPTC / XMP Metadata Stripped (0 bytes leaked)
03 · ピーク信号対雑音比 (PSNR) と構造的類似性 (SSIM) のリアルタイム計測
Module 03 · PSNR & SSIM Telemetry
SlimCodec は圧縮後の画像ストリームを 10 ms 以内にデコードして元画像の RGBA 配列と全ピクセル比較を行い(送信 0 bytes)、平均二乗誤差(MSE)、PSNR(単位 dB)、および SSIM(0〜1)を算出して 40 dB 以上の視覚的無劣化ラインを定量可視化します。
MSE = (1 / (3·W·H)) · Σ [(R₁-R₂)² + (G₁-G₂)² + (B₁-B₂)²]
PSNR (dB) = 10 · log₁₀(255² / MSE) | SSIM = [(2μₓμᵧ+C₁)(2σₓᵧ+C₂)] / [(μₓ²+μᵧ²+C₁)(σₓ²+σᵧ²+C₂)]
04 · 音声ポリフェーズ再サンプリングと 4-Bit IMA ADPCM (0x0011) 圧縮
Module 04 · 4-Bit IMA ADPCM Audio
SlimCodec は OfflineAudioContext で 48 kHz ステレオ音声を 44.1 kHz・22.05 kHz・16 kHz へ高精度ダウンサンプリングし、純粋な JavaScript 製 4-bit IMA ADPCM(RIFF 0x0011)エンコーダによりサーバー送信 0 bytes で 75%〜88% の音声圧縮を実現します。
ADPCM Step Index = clamp(Index + IndexTable[Nibble & 0x07], 0, 88)
Compression Ratio = 16-bit PCM (176.4 KB/s) → 4-bit Mono 22.05kHz ADPCM (11.1 KB/s, -93.7% bytes)
05 · 動画解像度スケーリング・フレームレート制限・VP9 / MP4 再エンコード
Module 05 · Video Bitrate & FPS Transcoder
SlimCodec は HTMLCanvasElement.captureStream と MediaRecorder MP4 / WebM ハードウェアエンコーダを連携させ、4K/1080p 動画の 720p/480p 縮小、30 fps / 24 fps 制限、300 kbps〜2.5 Mbps のビットレート制御を 0 bytes 送信のブラウザ内サンドボックスで完結させます。
Target Bitrate = VideoBitsPerSecond ∈ {2500k, 1200k, 600k, 300k} + AudioBitsPerSecond (64k)
Estimated Size(MB) = (TargetBitrate_kbps × Duration_seconds) / 8192
06 · ゼロアップロード・メモリサンドボックスと SHA-256 CSP セキュリティ
Module 06 · Zero-Upload Sandbox
SlimCodec は default-src 'none' の厳格な Content-Security-Policy と SHA-256 スクリプト検証を適用し、すべての画像・音声・動画をローカル ArrayBuffer と Blob URL で処理するため 0 bytes の外部送信を保証し、設定は localStorage にのみ保存します。
Network Upload = 0 bytes (100% Client-Side ArrayBuffer & Blob URL Processing)
Security Baseline = CSP default-src 'none'; script-src 'self' 'sha256-...'; X-Frame-Options: DENY