01 / 选择留下多少细节
质量参数是本工具的自定义量化规则,不对应 JPEG 软件的同名数值。
02 / 走进一个 8×8 块
03 / 带走真实结果
PX8 文件只含头部、量化表与零游程系数,能够独立解码。项目 JSON 另外保存原图与全部设置。
这一项频率,到底是什么?
DC(u=0、v=0)描述均值;u 沿横向变化、v 沿纵向变化。量化把系数除以步长后取整,丢弃的是数值精度;截取 zigzag 项还会直接移除频率。
可核算的编码账单
实际码流可能比原始RGB更大,这也是实验结果。原图如果来自 JPEG/PNG,只比较本次解码缩放后的RGB,不能把压缩率与原上传文件混为一谈。
放大检查当前 8×8 矩阵
展开完整系数表、格式定义与模型边界
| u,v | zigzag | 原 DCT | 量化步长 | 整数系数 | 还原系数 |
|---|
采用正交归一二维 DCT-II:F(v,u)=ΣyΣx (pixel(y,x)−128)·B(u,x)·B(v,y),B(0,x)=1/√8,其余 B(u,x)=0.5 cos[π(2x+1)u/16]。逆变换使用转置基底。RGB 三通道独立处理,没有 YCbCr、色度抽样或熵编码。
量化表 Q(v,u)=clip(round(1+((100−质量)/10)²·(0.3+0.08(u+v)+0.025(u²+v²))),1,255)。系数=round(F/Q),只保留 zigzag 前 K 个位置。边缘复制补到8的倍数;逆变换加128、取整、裁到0—255,最终裁回有效宽高。MSE 与 PSNR 针对最终 RGB 像素,PSNR=10log10(255²/MSE)。并非感知质量评分。
PX8 v1:16字节头(ASCII PX81、宽高uint16小端、3通道、复制边缘标志1、质量、K、4个零保留字节),128字节量化表(64个uint16小端),再按块从左至右、从上至下、RGB顺序存储。每非零项为零游程uint8和有符号int16小端系数,255为块结束。没有标准JPEG容器、Huffman或算术编码。
图片最多384×384像素;原上传最长边超过384会按比例缩小,透明合成白底。PX8文件最大1.4MB,完整项目2.5MB。使用浏览器图片解码与采样,浏览器可能处理源色彩配置;本工具不做独立色彩管理。
一手资料:SciPy 官方 DCT 定义(正交归一与逆变换);ITU-T T.81 标准目录(用于区分标准JPEG与本工具自制格式)。链接仅供阅读,作品无运行时联网依赖。