8 个版本
0.5.3 | 2024 年 6 月 21 日 |
---|---|
0.5.2 | 2024 年 5 月 25 日 |
0.4.0 | 2024 年 5 月 14 日 |
0.3.2 | 2024 年 5 月 9 日 |
#223 在 命令行工具
614 每月下载次数
13KB
186 代码行
rawtojpg
rawtojpg 提供了一种比 exiftool 的 -JpgFromRaw
更快的方法来从 RAW 文件中提取嵌入的 JPEG。在一个包含 4000 个文件的目录中,rawtojpg 比 exiftool 快约 15 倍提取 JPEG。
% rm -rf ~/rtj && mkdir -p ~/rtj/{rawtojpg, exiftool}
% sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'
% \time -v rawtojpg /mnt/sdcard/DCIM/101MSDCF ~/rtj/rawtojpg >/dev/null
User time (seconds): 2.18
System time (seconds): 20.99
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:29.72
File system inputs: 22956551
File system outputs: 22855504
% sudo sh -c 'sync; echo 3 > /proc/sys/vm/drop_caches'
% \time -v exiftool -b -JpgFromRaw -ext arw -r /mnt/sdcard/DCIM/101MSDCF -w ~/rtj/exiftool/%f.jpg >/dev/null
User time (seconds): 113.21
System time (seconds): 58.15
Elapsed (wall clock) time (h:mm:ss or m:ss): 7:52.87
File system inputs: 316175244
File system outputs: 22864400
输出 JPEG 文件的总大小为 11.5GiB,因此从吞吐量的角度来看,rawtojpg 约为 386MiB/s,而 exiftool 约为 24MiB/s。
rawtojpg 比如此之快的关键原因是它非常小心地避免了过度读取整个 RAW 文件。exiftool 不这样做,因此(有用的)吞吐量相当大。这是通过明智地使用 madvise
实现的。
除此之外,rawtojpg 还可以同时处理多个文件,这在像 CFexpress 卡这样的快速设备上非常有帮助。
依赖关系
~5–14MB
~149K SLoC