[JPX_JBig2.zip](https://github.com/user-attachments/files/34160416/JPX_JBig2.zip) 我试过开源的各种JBig2 c#图像库,能够全部处理这些测试文件的还没有,能处理样本的8%0~90%就算好的了。如果有时间你可以试试。 图像来自某个网站的测试集,网址我忘记了 如果有条件的话,JPEG2000的各种解码的性能优化也可以尝试一下,这个格式在PDF中很广泛。目前只有官方库能够确保各种格式解码正确,性能也是勉强。试过若干开源第三方库,发现兼容性不行,特别是性能远远不能满足需求。不同的图像库性能差距很大。 [JPXDecode.zip](https://github.com/user-attachments/files/34161061/JPXDecode.zip) 像这个图片,在我的老旧电脑上,使用PhotoDemon打开需要1-2秒,SimdCodecs 比 Magick.NET 略快需要4秒 https://github.com/dlemstra/Magick.NET/issues/1748 <img width="555" height="655" alt="Image" src="https://github.com/user-attachments/assets/2831e1a2-3790-42fa-9095-a58c43b01474" />
Activity
theoractice commentedon Oct 30, 2026
我让ai看看这个项目,结果它顺手在你的测试集上跑了一遍
JBIG2:68 / 114 成功
JPEG 2000:3 / 16 成功(成功的是 balloon.j2c、balloon2.j2k、JPXDecode.jp2)
失败原因全是它自己明确抛的 NotSupportedException / InvalidDataException:
这些正好是回给作者的高价值清单:HENABLESKIP、多 tile、pclr 三项就能覆盖 51/62 个失败。
sdcb commentedon Nov 3, 2026
这条清单非常有价值,谢谢。
但有一点得先说明:这批测试文件我们没有拿到。仓库里只有我们自己用
opj_compress/jbig2enc生成的 fixtures,没有 balloon.j2c、balloon2.j2k、JPXDecode.jp2 这些文件,本机也没在别处找到。所以上面这些数字我们无法复现,也没法判断每个文件卡在第一道关口之外还缺什么。如果方便的话,希望你能提供这批文件的原始来源(链接或者打包都好,标明许可即可)。拿到之后我们会把它们接进测试,按清单里的分组逐项消掉:HENABLESKIP 和多 tile 在你那份数据里就能覆盖大半,是最划算的两项。
另外——如果你(或你的 AI)有兴趣直接动手,非常欢迎提 PR。SimdCodecs 现在处于快速发展期,我们会持续维护,也很乐意 review 代码。动手前请先看一下仓库根目录的
AGENTS.md,特别是这几条:判断正确性的唯一标准是和参考解码器(jbig2dec /
opj_decompress)的输出比对,tests/Sdcb.SimdCodecs.Tests/Oracle/README.md里已写明每个 oracle 怎么装、怎么比对,照着做就行。theoractice commentedon Nov 3, 2026
文件就在顶楼的压缩包里啊。
sdcb commentedon Nov 4, 2026
抱歉,之前是我们看漏了:两个压缩包确实就在顶楼,已经下载下来逐个测过了。
现在已修复(main 上,#4),会在 2.0 中发布。
本地对
JPX_JBig2.zip+JPXDecode.zip共 131 个文件的结果:JBIG2:112 / 114,每一页都和 jbig2dec 逐像素一致
a.jb2、test.jb2、XeroxWorkCentre5230A_Huffman.jb2这三个 PDF 嵌入流,现在用Jbig2Decoder.Decode(data, width, height)能直接解20123110002.jb2有 10 页),现在新增了Jbig2Decoder.DecodeFile(file, pageNumber),用TryReadFileInfo(file, out w, out h, out pages)可以拿到页数042_13.jb2、042_14.jb2两个:jbig2dec 也报 FATAL ERROR,按规范读到的是非法值(IARDX 为 OOB、符号号越界),所以现在干净地抛InvalidDataException,不会崩溃也不会给出错误图像JPEG 2000:16 / 16,5/3 无损文件和 OpenJPEG 2.5.4 逐样本一致,9/7 有损文件最大差 1
pclr+cmap(lm6 / lm7 / lm10)因为这批文件来源和许可都不明确,按仓库规则不会提交进仓库。不过我们加了本地语料测试:设置
SIMDCODECS_ISSUE1_DIR指向解压目录即可。以后改 JBIG2 / JPEG 2000 解码器都会用这批文件回归一遍。性能这次没有专门优化,
JPXDecode.jp2单 tile 的耗时和之前一样。再次感谢这份测试集,非常有用!