01 · PNG 中位切分调色板量化与 Floyd-Steinberg 误差扩散
Module 01 · PNG-8 Median-Cut & Deflate
SlimCodec 在浏览器内存中直接扫描 RGBA 像素矩阵,利用三维色彩空间中位切分(Median-Cut)将 24-bit 真彩色收敛为 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 隐私元数据剥离
Module 02 · Perceptual WebP & JPEG
SlimCodec 通过离屏 Canvas 重建纯净像素缓冲区,100% 自动剥离相机 EXIF、GPS 经纬度与缩略图冗余块,并支持 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 硬件编码管线,支持将 4K/1080p 视频按比例缩放至 720p/480p,限制帧率为 30 fps 或 24 fps,并将目标码率锁定在 300 kbps–2.5 Mbps,全程在浏览器沙箱内完成 MP4/WebM 瘦身。
Target Bitrate = VideoBitsPerSecond ∈ {2500k, 1200k, 600k, 300k} + AudioBitsPerSecond (64k)
Estimated Size(MB) = (TargetBitrate_kbps × Duration_seconds) / 8192
06 · 零上传内存沙箱与严格 CSP 安全基线
Module 06 · Zero-Upload Sandbox
SlimCodec 遵循 default-src 'none' 的严格 Content-Security-Policy 与 SHA-256 脚本签名,所有图片、音频与视频均通过 FileReader 与 URL.createObjectURL 在本地内存处理,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