From f6c24409f1d01d2a35e9f7de648cde98828bfa08 Mon Sep 17 00:00:00 2001 From: andrews05 Date: Mon, 11 Dec 2023 01:15:45 +1300 Subject: [PATCH] If only one filter selected use it for evaluations (#582) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The filters used during reduction evaluations are normally set to None & Bigrams, regardless of any options. This PR makes a slight change so that if only one filter is specified in the options, this filter will be used for reduction evaluations too. This resolves an odd situation affecting lower levels (when --fast is enabled) where you may try to force the filter to a specific value but it actually ends up different because a reduction evaluation was smaller. It's particularly helpful if you're wanting it to be as fast as possible by using `-o0 -f0` which will now exclusively use None instead of trying the slower Bigrams as well. As another use, you could try to brute force oxipng by iterating each filter separately, though this may not actually achieve anything 😂 [edit] I also pulled the options out into a separate file, though this wasn't relevant to the filter change. --- src/lib.rs | 256 +----------------- src/options.rs | 252 +++++++++++++++++ .../grayscale_8_should_be_grayscale_4.png | Bin 67607 -> 4001 bytes 3 files changed, 262 insertions(+), 246 deletions(-) create mode 100644 src/options.rs diff --git a/src/lib.rs b/src/lib.rs index d4046583..35b7489d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,10 +34,9 @@ use crate::reduction::*; use log::{debug, info, trace, warn}; use rayon::prelude::*; use std::borrow::Cow; -use std::fmt; use std::fs::{File, Metadata}; use std::io::{stdin, stdout, BufWriter, Read, Write}; -use std::path::{Path, PathBuf}; +use std::path::Path; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; use std::time::{Duration, Instant}; @@ -48,6 +47,7 @@ pub use crate::error::PngError; pub use crate::filters::RowFilter; pub use crate::headers::StripChunks; pub use crate::interlace::Interlacing; +pub use crate::options::{InFile, Options, OutFile}; pub use indexmap::{indexset, IndexSet}; pub use rgb::{RGB16, RGBA8}; @@ -59,6 +59,7 @@ mod evaluate; mod filters; mod headers; mod interlace; +mod options; mod png; mod reduction; #[cfg(feature = "sanity-checks")] @@ -75,250 +76,8 @@ pub mod internal_tests { pub use crate::sanity_checks::*; } -#[derive(Clone, Debug)] -pub enum OutFile { - /// Don't actually write any output, just calculate the best results. - None, - /// Write output to a file. - /// - /// * `path`: Path to write the output file. `None` means same as input. - /// * `preserve_attrs`: Ensure the output file has the same permissions & timestamps as the input file. - Path { - path: Option, - preserve_attrs: bool, - }, - /// Write to standard output. - StdOut, -} - -impl OutFile { - /// Construct a new `OutFile` with the given path. - /// - /// This is a convenience method for `OutFile::Path { path: Some(path), preserve_attrs: false }`. - pub fn from_path(path: PathBuf) -> Self { - OutFile::Path { - path: Some(path), - preserve_attrs: false, - } - } - - pub fn path(&self) -> Option<&Path> { - match *self { - OutFile::Path { - path: Some(ref p), .. - } => Some(p.as_path()), - _ => None, - } - } -} - -/// Where to read images from -#[derive(Clone, Debug)] -pub enum InFile { - Path(PathBuf), - StdIn, -} - -impl InFile { - pub fn path(&self) -> Option<&Path> { - match *self { - InFile::Path(ref p) => Some(p.as_path()), - InFile::StdIn => None, - } - } -} - -impl fmt::Display for InFile { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match *self { - InFile::Path(ref p) => write!(f, "{}", p.display()), - InFile::StdIn => f.write_str("stdin"), - } - } -} - -impl> From for InFile { - fn from(s: T) -> Self { - InFile::Path(s.into()) - } -} - pub type PngResult = Result; -#[derive(Clone, Debug)] -/// Options controlling the output of the `optimize` function -pub struct Options { - /// Attempt to fix errors when decoding the input file rather than returning an `Err`. - /// - /// Default: `false` - pub fix_errors: bool, - /// Write to output even if there was no improvement in compression. - /// - /// Default: `false` - pub force: bool, - /// Which RowFilters to try on the file - /// - /// Default: `None,Sub,Entropy,Bigrams` - pub filter: IndexSet, - /// Whether to change the interlacing type of the file. - /// - /// `None` will not change the current interlacing type. - /// - /// `Some(x)` will change the file to interlacing mode `x`. - /// - /// Default: `Some(Interlacing::None)` - pub interlace: Option, - /// Whether to allow transparent pixels to be altered to improve compression. - pub optimize_alpha: bool, - /// Whether to attempt bit depth reduction - /// - /// Default: `true` - pub bit_depth_reduction: bool, - /// Whether to attempt color type reduction - /// - /// Default: `true` - pub color_type_reduction: bool, - /// Whether to attempt palette reduction - /// - /// Default: `true` - pub palette_reduction: bool, - /// Whether to attempt grayscale reduction - /// - /// Default: `true` - pub grayscale_reduction: bool, - /// Whether to perform recoding of IDAT and other compressed chunks - /// - /// If any type of reduction is performed, IDAT recoding will be performed - /// regardless of this setting - /// - /// Default: `true` - pub idat_recoding: bool, - /// Whether to forcibly reduce 16-bit to 8-bit by scaling - /// - /// Default: `false` - pub scale_16: bool, - /// Which chunks to strip from the PNG file, if any - /// - /// Default: `None` - pub strip: StripChunks, - /// Which DEFLATE algorithm to use - /// - /// Default: `Libdeflater` - pub deflate: Deflaters, - /// Whether to use fast evaluation to pick the best filter - /// - /// Default: `true` - pub fast_evaluation: bool, - - /// Maximum amount of time to spend on optimizations. - /// Further potential optimizations are skipped if the timeout is exceeded. - pub timeout: Option, -} - -impl Options { - pub fn from_preset(level: u8) -> Options { - let opts = Options::default(); - match level { - 0 => opts.apply_preset_0(), - 1 => opts.apply_preset_1(), - 2 => opts.apply_preset_2(), - 3 => opts.apply_preset_3(), - 4 => opts.apply_preset_4(), - 5 => opts.apply_preset_5(), - 6 => opts.apply_preset_6(), - _ => { - warn!("Level 7 and above don't exist yet and are identical to level 6"); - opts.apply_preset_6() - } - } - } - - pub fn max_compression() -> Options { - Options::from_preset(6) - } - - // The following methods make assumptions that they are operating - // on an `Options` struct generated by the `default` method. - fn apply_preset_0(mut self) -> Self { - self.filter.clear(); - if let Deflaters::Libdeflater { compression } = &mut self.deflate { - *compression = 5; - } - self - } - - fn apply_preset_1(mut self) -> Self { - self.filter.clear(); - if let Deflaters::Libdeflater { compression } = &mut self.deflate { - *compression = 10; - } - self - } - - fn apply_preset_2(self) -> Self { - self - } - - fn apply_preset_3(mut self) -> Self { - self.fast_evaluation = false; - self.filter = indexset! { - RowFilter::None, - RowFilter::Bigrams, - RowFilter::BigEnt, - RowFilter::Brute - }; - self - } - - fn apply_preset_4(mut self) -> Self { - if let Deflaters::Libdeflater { compression } = &mut self.deflate { - *compression = 12; - } - self.apply_preset_3() - } - - fn apply_preset_5(mut self) -> Self { - self.fast_evaluation = false; - self.filter.insert(RowFilter::Up); - self.filter.insert(RowFilter::MinSum); - self.filter.insert(RowFilter::BigEnt); - self.filter.insert(RowFilter::Brute); - if let Deflaters::Libdeflater { compression } = &mut self.deflate { - *compression = 12; - } - self - } - - fn apply_preset_6(mut self) -> Self { - self.filter.insert(RowFilter::Average); - self.filter.insert(RowFilter::Paeth); - self.apply_preset_5() - } -} - -impl Default for Options { - fn default() -> Options { - // Default settings based on -o 2 from the CLI interface - Options { - fix_errors: false, - force: false, - filter: indexset! {RowFilter::None, RowFilter::Sub, RowFilter::Entropy, RowFilter::Bigrams}, - interlace: Some(Interlacing::None), - optimize_alpha: false, - bit_depth_reduction: true, - color_type_reduction: true, - palette_reduction: true, - grayscale_reduction: true, - idat_recoding: true, - scale_16: false, - strip: StripChunks::None, - deflate: Deflaters::Libdeflater { compression: 11 }, - fast_evaluation: true, - timeout: None, - } - } -} - #[derive(Debug)] /// A raw image definition which can be used to create an optimized png pub struct RawImage { @@ -660,8 +419,13 @@ fn optimize_raw( } _ => 8, }; - // None and Bigrams work well together, especially for alpha reductions - let eval_filters = indexset! {RowFilter::None, RowFilter::Bigrams}; + // If only one filter is selected, use this for evaluations + let eval_filters = if opts.filter.len() == 1 { + opts.filter.clone() + } else { + // None and Bigrams work well together, especially for alpha reductions + indexset! {RowFilter::None, RowFilter::Bigrams} + }; // This will collect all versions of images and pick one that compresses best let eval = Evaluator::new( deadline.clone(), diff --git a/src/options.rs b/src/options.rs new file mode 100644 index 00000000..0523f76f --- /dev/null +++ b/src/options.rs @@ -0,0 +1,252 @@ +use log::warn; +use std::fmt; +use std::path::{Path, PathBuf}; +use std::time::Duration; + +use crate::deflate::Deflaters; +use crate::filters::RowFilter; +use crate::headers::StripChunks; +use crate::interlace::Interlacing; +use indexmap::{indexset, IndexSet}; + +#[derive(Clone, Debug)] +pub enum OutFile { + /// Don't actually write any output, just calculate the best results. + None, + /// Write output to a file. + /// + /// * `path`: Path to write the output file. `None` means same as input. + /// * `preserve_attrs`: Ensure the output file has the same permissions & timestamps as the input file. + Path { + path: Option, + preserve_attrs: bool, + }, + /// Write to standard output. + StdOut, +} + +impl OutFile { + /// Construct a new `OutFile` with the given path. + /// + /// This is a convenience method for `OutFile::Path { path: Some(path), preserve_attrs: false }`. + pub fn from_path(path: PathBuf) -> Self { + OutFile::Path { + path: Some(path), + preserve_attrs: false, + } + } + + pub fn path(&self) -> Option<&Path> { + match *self { + OutFile::Path { + path: Some(ref p), .. + } => Some(p.as_path()), + _ => None, + } + } +} + +/// Where to read images from +#[derive(Clone, Debug)] +pub enum InFile { + Path(PathBuf), + StdIn, +} + +impl InFile { + pub fn path(&self) -> Option<&Path> { + match *self { + InFile::Path(ref p) => Some(p.as_path()), + InFile::StdIn => None, + } + } +} + +impl fmt::Display for InFile { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match *self { + InFile::Path(ref p) => write!(f, "{}", p.display()), + InFile::StdIn => f.write_str("stdin"), + } + } +} + +impl> From for InFile { + fn from(s: T) -> Self { + InFile::Path(s.into()) + } +} + +#[derive(Clone, Debug)] +/// Options controlling the output of the `optimize` function +pub struct Options { + /// Attempt to fix errors when decoding the input file rather than returning an `Err`. + /// + /// Default: `false` + pub fix_errors: bool, + /// Write to output even if there was no improvement in compression. + /// + /// Default: `false` + pub force: bool, + /// Which RowFilters to try on the file + /// + /// Default: `None,Sub,Entropy,Bigrams` + pub filter: IndexSet, + /// Whether to change the interlacing type of the file. + /// + /// `None` will not change the current interlacing type. + /// + /// `Some(x)` will change the file to interlacing mode `x`. + /// + /// Default: `Some(Interlacing::None)` + pub interlace: Option, + /// Whether to allow transparent pixels to be altered to improve compression. + pub optimize_alpha: bool, + /// Whether to attempt bit depth reduction + /// + /// Default: `true` + pub bit_depth_reduction: bool, + /// Whether to attempt color type reduction + /// + /// Default: `true` + pub color_type_reduction: bool, + /// Whether to attempt palette reduction + /// + /// Default: `true` + pub palette_reduction: bool, + /// Whether to attempt grayscale reduction + /// + /// Default: `true` + pub grayscale_reduction: bool, + /// Whether to perform recoding of IDAT and other compressed chunks + /// + /// If any type of reduction is performed, IDAT recoding will be performed + /// regardless of this setting + /// + /// Default: `true` + pub idat_recoding: bool, + /// Whether to forcibly reduce 16-bit to 8-bit by scaling + /// + /// Default: `false` + pub scale_16: bool, + /// Which chunks to strip from the PNG file, if any + /// + /// Default: `None` + pub strip: StripChunks, + /// Which DEFLATE algorithm to use + /// + /// Default: `Libdeflater` + pub deflate: Deflaters, + /// Whether to use fast evaluation to pick the best filter + /// + /// Default: `true` + pub fast_evaluation: bool, + + /// Maximum amount of time to spend on optimizations. + /// Further potential optimizations are skipped if the timeout is exceeded. + pub timeout: Option, +} + +impl Options { + pub fn from_preset(level: u8) -> Options { + let opts = Options::default(); + match level { + 0 => opts.apply_preset_0(), + 1 => opts.apply_preset_1(), + 2 => opts.apply_preset_2(), + 3 => opts.apply_preset_3(), + 4 => opts.apply_preset_4(), + 5 => opts.apply_preset_5(), + 6 => opts.apply_preset_6(), + _ => { + warn!("Level 7 and above don't exist yet and are identical to level 6"); + opts.apply_preset_6() + } + } + } + + pub fn max_compression() -> Options { + Options::from_preset(6) + } + + // The following methods make assumptions that they are operating + // on an `Options` struct generated by the `default` method. + fn apply_preset_0(mut self) -> Self { + self.filter.clear(); + if let Deflaters::Libdeflater { compression } = &mut self.deflate { + *compression = 5; + } + self + } + + fn apply_preset_1(mut self) -> Self { + self.filter.clear(); + if let Deflaters::Libdeflater { compression } = &mut self.deflate { + *compression = 10; + } + self + } + + fn apply_preset_2(self) -> Self { + self + } + + fn apply_preset_3(mut self) -> Self { + self.fast_evaluation = false; + self.filter = indexset! { + RowFilter::None, + RowFilter::Bigrams, + RowFilter::BigEnt, + RowFilter::Brute + }; + self + } + + fn apply_preset_4(mut self) -> Self { + if let Deflaters::Libdeflater { compression } = &mut self.deflate { + *compression = 12; + } + self.apply_preset_3() + } + + fn apply_preset_5(mut self) -> Self { + self.fast_evaluation = false; + self.filter.insert(RowFilter::Up); + self.filter.insert(RowFilter::MinSum); + self.filter.insert(RowFilter::BigEnt); + self.filter.insert(RowFilter::Brute); + if let Deflaters::Libdeflater { compression } = &mut self.deflate { + *compression = 12; + } + self + } + + fn apply_preset_6(mut self) -> Self { + self.filter.insert(RowFilter::Average); + self.filter.insert(RowFilter::Paeth); + self.apply_preset_5() + } +} + +impl Default for Options { + fn default() -> Options { + // Default settings based on -o 2 from the CLI interface + Options { + fix_errors: false, + force: false, + filter: indexset! {RowFilter::None, RowFilter::Sub, RowFilter::Entropy, RowFilter::Bigrams}, + interlace: Some(Interlacing::None), + optimize_alpha: false, + bit_depth_reduction: true, + color_type_reduction: true, + palette_reduction: true, + grayscale_reduction: true, + idat_recoding: true, + scale_16: false, + strip: StripChunks::None, + deflate: Deflaters::Libdeflater { compression: 11 }, + fast_evaluation: true, + timeout: None, + } + } +} diff --git a/tests/files/grayscale_8_should_be_grayscale_4.png b/tests/files/grayscale_8_should_be_grayscale_4.png index e5e62cb1d5ed420c586146a954b7f28838f6f12b..13537e8e9e62d56d88534b4ca8b3c325e1e86d43 100644 GIT binary patch literal 4001 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 B%H#k5 literal 67607 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

W07_%>0UVZiB1&)=DTNXXq2 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