mtpng:Rust中的并行化PNG编码器

时间:2021-05-14 08:21:21
【文件属性】:
文件名称:mtpng:Rust中的并行化PNG编码器
文件大小:7.31MB
文件格式:ZIP
更新时间:2021-05-14 08:21:21
png rust-library png-encoder multithreaded Rust mtpng Rust中的并行化PNG编码器 通过Brion Vibber 背景 在大图像尺寸下,压缩PNG文件是一个相对较慢的操作,对于4K分辨率及更高分辨率,可能需要半秒到一秒以上的时间。 有关更多详细信息,请参阅。 传统libpng中最大的CPU开销似乎是易于并行化的过滤和deflate压缩,后者可以在块边界之间略微压缩的情况下以块的形式并行化。 是众所周知的并行化deflate / gzip压缩的C实现,它是此处使用的分块方案的强烈启发。 Pascal Beyeler的一个名为png-parallel的实验性C ++ / OpenMP项目也启发了我,该项目未实现过滤,但确认了基本理论。 状态 以所有颜色格式创建正确的文件(输入必须预先打包)。 在大文件上表现良好,但需要处理小文件和辅助块。 即将规划API稳定性,但目前尚不可行-事情会在1.0之前改变。 目标 表现: :check_box_with_check:
【文件预览】:
mtpng-master
----test-sample.bat(804B)
----.gitignore(110B)
----test-sample.sh(231B)
----build-ios.sh(455B)
----Makefile(1KB)
----src()
--------utils.rs(2KB)
--------encoder.rs(34KB)
--------deflate.rs(8KB)
--------bin()
--------filter.rs(16KB)
--------writer.rs(6KB)
--------capi.rs(16KB)
--------lib.rs(11KB)
----samples()
--------circles-1024.png(210KB)
--------track-300.png(20KB)
--------track-2560.png(965KB)
--------arch-indexed-dither.png(188KB)
--------dual4k.png(1.61MB)
--------arch-indexed-nodither.png(159KB)
--------circles-512.png(81KB)
--------dollar.png(203KB)
--------dollar-168.png(58KB)
--------track-1280.png(264KB)
--------sound-50.png(2KB)
--------sound-100.png(4KB)
--------track-150.png(6KB)
--------cube-indexed-1024.png(24KB)
--------arch-640.png(614KB)
--------track.png(1.36MB)
--------circles-256.png(32KB)
--------circles.png(660KB)
--------circles-indexed.png(295KB)
--------cube-indexed-512.png(11KB)
--------dual4k-indexed.png(553KB)
--------cube-256.png(16KB)
--------cube-1024.png(79KB)
--------cube-512.png(37KB)
--------cube-indexed-256.png(5KB)
----test-samples.bat(899B)
----Cargo.toml(1KB)
----c()
--------mtpng.h(16KB)
--------sample.c(4KB)
--------module.map(70B)
----darwin()
--------mtpng-example()
----test-filters.sh(453B)
----pngsuite()
--------basn6a16.png(3KB)
--------basn0g04.png(145B)
--------basn4a08.png(126B)
--------PngSuite.README(716B)
--------basn3p02.png(146B)
--------basn0g02.png(104B)
--------basn0g08.png(138B)
--------basn6a08.png(184B)
--------basn4a16.png(2KB)
--------PngSuite.LICENSE(167B)
--------basn0g16.png(167B)
--------basn2c08.png(145B)
--------basn3p01.png(112B)
--------basn3p08.png(1KB)
--------basn2c16.png(302B)
--------basn3p04.png(216B)
--------basn0g01.png(164B)
----test-samples.sh(255B)
----readme.md(8KB)
----build-win.bat(2KB)
----test-pngsuite.sh(260B)
----docs()
--------data-flow-write.png(95KB)
--------perf.md(4KB)
--------data-flow-read.png(99KB)
----license.md(1KB)

网友评论