This commit is contained in:
2025-12-13 16:12:33 -05:00
3 changed files with 35 additions and 9 deletions

View File

@@ -19,12 +19,38 @@ A high-performance C++ port of [negfix8](https://github.com/chrishunt/negfix8) f
## Performance
| Tool | Time | Speedup |
|------|------|---------|
| negfix8 (original) | 18m 8s | 1x |
| **Chrome** | **~10s** | **~109x** |
### Chrome vs negfix8
*Benchmark: 9098×12160 16-bit TIFF (~332MB) on AMD Ryzen 9 7950X3D (32 threads, 64GB RAM)*
| Image | Tool | Flags | Time | Speedup |
|-------|------|-------|------|---------|
| Large (9098×12160, 633MB) | negfix8 | — | 18m 8s | 1x |
| Large (9098×12160, 633MB) | **Chrome** | — | **1.26s** | **~865x** |
| Small (4272×6272, 153MB) | negfix8 | — | 22.0s | 1x |
| Small (4272×6272, 153MB) | **Chrome** | — | **0.41s** | **~54x** |
### Chrome Detailed Benchmarks
#### Large Image (test_input.tiff — 9098×12160, 633MB)
| Flags | Time |
|-------|------|
| *(baseline)* | 1.26s |
| `-cs` | 1.38s |
| `-sat 50` | 1.38s |
| `-exp 1.2` | 1.39s |
| `-cs -sat 50 -exp 1.2` | 1.45s |
#### Small Image (test_input_small.tiff — 4272×6272, 153MB)
| Flags | Time |
|-------|------|
| *(baseline)* | 0.41s |
| `-cs` | 0.36s |
| `-sat 50` | 0.35s |
| `-exp 1.2` | 0.35s |
| `-cs -sat 50 -exp 1.2` | 0.36s |
*Benchmarks run on AMD Ryzen 9 7950X3D (32 threads, 64GB RAM)*
## Features

View File

@@ -407,10 +407,10 @@ int main(int argc, char** argv) {
std::string out = settings.outputPath.empty() ? "output.tif" : settings.outputPath;
std::cout << "Saving to " << out << "..." << std::endl;
// Set compression params for TIFF
// Set compression params for TIFF - use no compression for speed
std::vector<int> params;
params.push_back(cv::IMWRITE_TIFF_COMPRESSION);
params.push_back(5); // LZW (equivalent to Zip roughly in OpenCV terms, usually 5 or 1)
params.push_back(1); // No compression (30x faster than LZW)
cv::imwrite(out, img, params);
std::cout << "Done." << std::endl;

Binary file not shown.