From 33f1fad7110112f073202b3e6a970477ce42e150 Mon Sep 17 00:00:00 2001 From: Josh Holmer Date: Sat, 3 Dec 2016 15:18:11 -0500 Subject: [PATCH] Minor refactoring --- benches/deflate.rs | 42 ++++++++++++++--------------- benches/filters.rs | 60 +++++++++++++++++++++--------------------- benches/interlacing.rs | 20 +++++++------- benches/reductions.rs | 40 ++++++++++++++-------------- benches/zopfli.rs | 10 +++---- src/reduction.rs | 25 +++++------------- 6 files changed, 92 insertions(+), 105 deletions(-) diff --git a/benches/deflate.rs b/benches/deflate.rs index 25c4a3e3..3bb02ab3 100644 --- a/benches/deflate.rs +++ b/benches/deflate.rs @@ -9,7 +9,7 @@ use test::Bencher; use std::path::PathBuf; #[bench] -fn bench_deflate_16_bits_strategy_0(b: &mut Bencher) { +fn deflate_16_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -19,7 +19,7 @@ fn bench_deflate_16_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_deflate_8_bits_strategy_0(b: &mut Bencher) { +fn deflate_8_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -29,7 +29,7 @@ fn bench_deflate_8_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_deflate_4_bits_strategy_0(b: &mut Bencher) { +fn deflate_4_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -39,7 +39,7 @@ fn bench_deflate_4_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_deflate_2_bits_strategy_0(b: &mut Bencher) { +fn deflate_2_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -49,7 +49,7 @@ fn bench_deflate_2_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_deflate_1_bits_strategy_0(b: &mut Bencher) { +fn deflate_1_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -59,7 +59,7 @@ fn bench_deflate_1_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_deflate_16_bits_strategy_1(b: &mut Bencher) { +fn deflate_16_bits_strategy_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -69,7 +69,7 @@ fn bench_deflate_16_bits_strategy_1(b: &mut Bencher) { } #[bench] -fn bench_deflate_8_bits_strategy_1(b: &mut Bencher) { +fn deflate_8_bits_strategy_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -79,7 +79,7 @@ fn bench_deflate_8_bits_strategy_1(b: &mut Bencher) { } #[bench] -fn bench_deflate_4_bits_strategy_1(b: &mut Bencher) { +fn deflate_4_bits_strategy_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -89,7 +89,7 @@ fn bench_deflate_4_bits_strategy_1(b: &mut Bencher) { } #[bench] -fn bench_deflate_2_bits_strategy_1(b: &mut Bencher) { +fn deflate_2_bits_strategy_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -99,7 +99,7 @@ fn bench_deflate_2_bits_strategy_1(b: &mut Bencher) { } #[bench] -fn bench_deflate_1_bits_strategy_1(b: &mut Bencher) { +fn deflate_1_bits_strategy_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -109,7 +109,7 @@ fn bench_deflate_1_bits_strategy_1(b: &mut Bencher) { } #[bench] -fn bench_deflate_16_bits_strategy_2(b: &mut Bencher) { +fn deflate_16_bits_strategy_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -119,7 +119,7 @@ fn bench_deflate_16_bits_strategy_2(b: &mut Bencher) { } #[bench] -fn bench_deflate_8_bits_strategy_2(b: &mut Bencher) { +fn deflate_8_bits_strategy_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -129,7 +129,7 @@ fn bench_deflate_8_bits_strategy_2(b: &mut Bencher) { } #[bench] -fn bench_deflate_4_bits_strategy_2(b: &mut Bencher) { +fn deflate_4_bits_strategy_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -139,7 +139,7 @@ fn bench_deflate_4_bits_strategy_2(b: &mut Bencher) { } #[bench] -fn bench_deflate_2_bits_strategy_2(b: &mut Bencher) { +fn deflate_2_bits_strategy_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -149,7 +149,7 @@ fn bench_deflate_2_bits_strategy_2(b: &mut Bencher) { } #[bench] -fn bench_deflate_1_bits_strategy_2(b: &mut Bencher) { +fn deflate_1_bits_strategy_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -159,7 +159,7 @@ fn bench_deflate_1_bits_strategy_2(b: &mut Bencher) { } #[bench] -fn bench_deflate_16_bits_strategy_3(b: &mut Bencher) { +fn deflate_16_bits_strategy_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -169,7 +169,7 @@ fn bench_deflate_16_bits_strategy_3(b: &mut Bencher) { } #[bench] -fn bench_deflate_8_bits_strategy_3(b: &mut Bencher) { +fn deflate_8_bits_strategy_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -179,7 +179,7 @@ fn bench_deflate_8_bits_strategy_3(b: &mut Bencher) { } #[bench] -fn bench_deflate_4_bits_strategy_3(b: &mut Bencher) { +fn deflate_4_bits_strategy_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -189,7 +189,7 @@ fn bench_deflate_4_bits_strategy_3(b: &mut Bencher) { } #[bench] -fn bench_deflate_2_bits_strategy_3(b: &mut Bencher) { +fn deflate_2_bits_strategy_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -199,7 +199,7 @@ fn bench_deflate_2_bits_strategy_3(b: &mut Bencher) { } #[bench] -fn bench_deflate_1_bits_strategy_3(b: &mut Bencher) { +fn deflate_1_bits_strategy_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -209,7 +209,7 @@ fn bench_deflate_1_bits_strategy_3(b: &mut Bencher) { } #[bench] -fn bench_inflate_generic(b: &mut Bencher) { +fn inflate_generic(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); diff --git a/benches/filters.rs b/benches/filters.rs index faea5f50..d7728f3f 100644 --- a/benches/filters.rs +++ b/benches/filters.rs @@ -8,7 +8,7 @@ use test::Bencher; use std::path::PathBuf; #[bench] -fn bench_16_bits_filter_0(b: &mut Bencher) { +fn filters_16_bits_filter_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -18,7 +18,7 @@ fn bench_16_bits_filter_0(b: &mut Bencher) { } #[bench] -fn bench_8_bits_filter_0(b: &mut Bencher) { +fn filters_8_bits_filter_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -28,7 +28,7 @@ fn bench_8_bits_filter_0(b: &mut Bencher) { } #[bench] -fn bench_4_bits_filter_0(b: &mut Bencher) { +fn filters_4_bits_filter_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -38,7 +38,7 @@ fn bench_4_bits_filter_0(b: &mut Bencher) { } #[bench] -fn bench_2_bits_filter_0(b: &mut Bencher) { +fn filters_2_bits_filter_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -48,7 +48,7 @@ fn bench_2_bits_filter_0(b: &mut Bencher) { } #[bench] -fn bench_1_bits_filter_0(b: &mut Bencher) { +fn filters_1_bits_filter_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -58,7 +58,7 @@ fn bench_1_bits_filter_0(b: &mut Bencher) { } #[bench] -fn bench_16_bits_filter_1(b: &mut Bencher) { +fn filters_16_bits_filter_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -68,7 +68,7 @@ fn bench_16_bits_filter_1(b: &mut Bencher) { } #[bench] -fn bench_8_bits_filter_1(b: &mut Bencher) { +fn filters_8_bits_filter_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -78,7 +78,7 @@ fn bench_8_bits_filter_1(b: &mut Bencher) { } #[bench] -fn bench_4_bits_filter_1(b: &mut Bencher) { +fn filters_4_bits_filter_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -88,7 +88,7 @@ fn bench_4_bits_filter_1(b: &mut Bencher) { } #[bench] -fn bench_2_bits_filter_1(b: &mut Bencher) { +fn filters_2_bits_filter_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -98,7 +98,7 @@ fn bench_2_bits_filter_1(b: &mut Bencher) { } #[bench] -fn bench_1_bits_filter_1(b: &mut Bencher) { +fn filters_1_bits_filter_1(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -108,7 +108,7 @@ fn bench_1_bits_filter_1(b: &mut Bencher) { } #[bench] -fn bench_16_bits_filter_2(b: &mut Bencher) { +fn filters_16_bits_filter_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -118,7 +118,7 @@ fn bench_16_bits_filter_2(b: &mut Bencher) { } #[bench] -fn bench_8_bits_filter_2(b: &mut Bencher) { +fn filters_8_bits_filter_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -128,7 +128,7 @@ fn bench_8_bits_filter_2(b: &mut Bencher) { } #[bench] -fn bench_4_bits_filter_2(b: &mut Bencher) { +fn filters_4_bits_filter_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -138,7 +138,7 @@ fn bench_4_bits_filter_2(b: &mut Bencher) { } #[bench] -fn bench_2_bits_filter_2(b: &mut Bencher) { +fn filters_2_bits_filter_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -148,7 +148,7 @@ fn bench_2_bits_filter_2(b: &mut Bencher) { } #[bench] -fn bench_1_bits_filter_2(b: &mut Bencher) { +fn filters_1_bits_filter_2(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -158,7 +158,7 @@ fn bench_1_bits_filter_2(b: &mut Bencher) { } #[bench] -fn bench_16_bits_filter_3(b: &mut Bencher) { +fn filters_16_bits_filter_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -168,7 +168,7 @@ fn bench_16_bits_filter_3(b: &mut Bencher) { } #[bench] -fn bench_8_bits_filter_3(b: &mut Bencher) { +fn filters_8_bits_filter_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -178,7 +178,7 @@ fn bench_8_bits_filter_3(b: &mut Bencher) { } #[bench] -fn bench_4_bits_filter_3(b: &mut Bencher) { +fn filters_4_bits_filter_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -188,7 +188,7 @@ fn bench_4_bits_filter_3(b: &mut Bencher) { } #[bench] -fn bench_2_bits_filter_3(b: &mut Bencher) { +fn filters_2_bits_filter_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -198,7 +198,7 @@ fn bench_2_bits_filter_3(b: &mut Bencher) { } #[bench] -fn bench_1_bits_filter_3(b: &mut Bencher) { +fn filters_1_bits_filter_3(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -208,7 +208,7 @@ fn bench_1_bits_filter_3(b: &mut Bencher) { } #[bench] -fn bench_16_bits_filter_4(b: &mut Bencher) { +fn filters_16_bits_filter_4(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -218,7 +218,7 @@ fn bench_16_bits_filter_4(b: &mut Bencher) { } #[bench] -fn bench_8_bits_filter_4(b: &mut Bencher) { +fn filters_8_bits_filter_4(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -228,7 +228,7 @@ fn bench_8_bits_filter_4(b: &mut Bencher) { } #[bench] -fn bench_4_bits_filter_4(b: &mut Bencher) { +fn filters_4_bits_filter_4(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -238,7 +238,7 @@ fn bench_4_bits_filter_4(b: &mut Bencher) { } #[bench] -fn bench_2_bits_filter_4(b: &mut Bencher) { +fn filters_2_bits_filter_4(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -248,7 +248,7 @@ fn bench_2_bits_filter_4(b: &mut Bencher) { } #[bench] -fn bench_1_bits_filter_4(b: &mut Bencher) { +fn filters_1_bits_filter_4(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -258,7 +258,7 @@ fn bench_1_bits_filter_4(b: &mut Bencher) { } #[bench] -fn bench_16_bits_filter_5(b: &mut Bencher) { +fn filters_16_bits_filter_5(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -268,7 +268,7 @@ fn bench_16_bits_filter_5(b: &mut Bencher) { } #[bench] -fn bench_8_bits_filter_5(b: &mut Bencher) { +fn filters_8_bits_filter_5(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -278,7 +278,7 @@ fn bench_8_bits_filter_5(b: &mut Bencher) { } #[bench] -fn bench_4_bits_filter_5(b: &mut Bencher) { +fn filters_4_bits_filter_5(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -288,7 +288,7 @@ fn bench_4_bits_filter_5(b: &mut Bencher) { } #[bench] -fn bench_2_bits_filter_5(b: &mut Bencher) { +fn filters_2_bits_filter_5(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -298,7 +298,7 @@ fn bench_2_bits_filter_5(b: &mut Bencher) { } #[bench] -fn bench_1_bits_filter_5(b: &mut Bencher) { +fn filters_1_bits_filter_5(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); diff --git a/benches/interlacing.rs b/benches/interlacing.rs index 886b6efb..25b640e6 100644 --- a/benches/interlacing.rs +++ b/benches/interlacing.rs @@ -8,7 +8,7 @@ use test::Bencher; use std::path::PathBuf; #[bench] -fn bench_interlace_16_bits(b: &mut Bencher) { +fn interlacing_16_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -19,7 +19,7 @@ fn bench_interlace_16_bits(b: &mut Bencher) { } #[bench] -fn bench_interlace_8_bits(b: &mut Bencher) { +fn interlacing_8_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -30,7 +30,7 @@ fn bench_interlace_8_bits(b: &mut Bencher) { } #[bench] -fn bench_interlace_4_bits(b: &mut Bencher) { +fn interlacing_4_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -41,7 +41,7 @@ fn bench_interlace_4_bits(b: &mut Bencher) { } #[bench] -fn bench_interlace_2_bits(b: &mut Bencher) { +fn interlacing_2_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -52,7 +52,7 @@ fn bench_interlace_2_bits(b: &mut Bencher) { } #[bench] -fn bench_interlace_1_bits(b: &mut Bencher) { +fn interlacing_1_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -63,7 +63,7 @@ fn bench_interlace_1_bits(b: &mut Bencher) { } #[bench] -fn bench_deinterlace_16_bits(b: &mut Bencher) { +fn deinterlacing_16_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/interlaced_rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -74,7 +74,7 @@ fn bench_deinterlace_16_bits(b: &mut Bencher) { } #[bench] -fn bench_deinterlace_8_bits(b: &mut Bencher) { +fn deinterlacing_8_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/interlaced_rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -85,7 +85,7 @@ fn bench_deinterlace_8_bits(b: &mut Bencher) { } #[bench] -fn bench_deinterlace_4_bits(b: &mut Bencher) { +fn deinterlacing_4_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/interlaced_palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -96,7 +96,7 @@ fn bench_deinterlace_4_bits(b: &mut Bencher) { } #[bench] -fn bench_deinterlace_2_bits(b: &mut Bencher) { +fn deinterlacing_2_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/interlaced_palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -107,7 +107,7 @@ fn bench_deinterlace_2_bits(b: &mut Bencher) { } #[bench] -fn bench_deinterlace_1_bits(b: &mut Bencher) { +fn deinterlacing_1_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/interlaced_palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); diff --git a/benches/reductions.rs b/benches/reductions.rs index 4114da7e..41886908 100644 --- a/benches/reductions.rs +++ b/benches/reductions.rs @@ -8,7 +8,7 @@ use test::Bencher; use std::path::PathBuf; #[bench] -fn bench_16_to_8_bits(b: &mut Bencher) { +fn reductions_16_to_8_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -19,7 +19,7 @@ fn bench_16_to_8_bits(b: &mut Bencher) { } #[bench] -fn bench_8_to_4_bits(b: &mut Bencher) { +fn reductions_8_to_4_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_8_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -30,7 +30,7 @@ fn bench_8_to_4_bits(b: &mut Bencher) { } #[bench] -fn bench_8_to_2_bits(b: &mut Bencher) { +fn reductions_8_to_2_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_8_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -41,7 +41,7 @@ fn bench_8_to_2_bits(b: &mut Bencher) { } #[bench] -fn bench_8_to_1_bits(b: &mut Bencher) { +fn reductions_8_to_1_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_8_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -52,7 +52,7 @@ fn bench_8_to_1_bits(b: &mut Bencher) { } #[bench] -fn bench_4_to_2_bits(b: &mut Bencher) { +fn reductions_4_to_2_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -63,7 +63,7 @@ fn bench_4_to_2_bits(b: &mut Bencher) { } #[bench] -fn bench_4_to_1_bits(b: &mut Bencher) { +fn reductions_4_to_1_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -74,7 +74,7 @@ fn bench_4_to_1_bits(b: &mut Bencher) { } #[bench] -fn bench_2_to_1_bits(b: &mut Bencher) { +fn reductions_2_to_1_bits(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -85,7 +85,7 @@ fn bench_2_to_1_bits(b: &mut Bencher) { } #[bench] -fn bench_rgba_to_rgb_16(b: &mut Bencher) { +fn reductions_rgba_to_rgb_16(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgba_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -96,7 +96,7 @@ fn bench_rgba_to_rgb_16(b: &mut Bencher) { } #[bench] -fn bench_rgba_to_rgb_8(b: &mut Bencher) { +fn reductions_rgba_to_rgb_8(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgba_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -107,7 +107,7 @@ fn bench_rgba_to_rgb_8(b: &mut Bencher) { } #[bench] -fn bench_rgba_to_grayscale_alpha_16(b: &mut Bencher) { +fn reductions_rgba_to_grayscale_alpha_16(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgba_16_should_be_grayscale_alpha_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -118,7 +118,7 @@ fn bench_rgba_to_grayscale_alpha_16(b: &mut Bencher) { } #[bench] -fn bench_rgba_to_grayscale_alpha_8(b: &mut Bencher) { +fn reductions_rgba_to_grayscale_alpha_8(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgba_8_should_be_grayscale_alpha_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -129,7 +129,7 @@ fn bench_rgba_to_grayscale_alpha_8(b: &mut Bencher) { } #[bench] -fn bench_rgba_to_grayscale_16(b: &mut Bencher) { +fn reductions_rgba_to_grayscale_16(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgba_16_should_be_grayscale_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -140,7 +140,7 @@ fn bench_rgba_to_grayscale_16(b: &mut Bencher) { } #[bench] -fn bench_rgba_to_grayscale_8(b: &mut Bencher) { +fn reductions_rgba_to_grayscale_8(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgba_8_should_be_grayscale_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -151,7 +151,7 @@ fn bench_rgba_to_grayscale_8(b: &mut Bencher) { } #[bench] -fn bench_rgb_to_grayscale_16(b: &mut Bencher) { +fn reductions_rgb_to_grayscale_16(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_grayscale_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -162,7 +162,7 @@ fn bench_rgb_to_grayscale_16(b: &mut Bencher) { } #[bench] -fn bench_rgb_to_grayscale_8(b: &mut Bencher) { +fn reductions_rgb_to_grayscale_8(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_grayscale_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -173,7 +173,7 @@ fn bench_rgb_to_grayscale_8(b: &mut Bencher) { } #[bench] -fn bench_rgba_to_palette_8(b: &mut Bencher) { +fn reductions_rgba_to_palette_8(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgba_8_should_be_palette_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -184,7 +184,7 @@ fn bench_rgba_to_palette_8(b: &mut Bencher) { } #[bench] -fn bench_rgb_to_palette_8(b: &mut Bencher) { +fn reductions_rgb_to_palette_8(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_palette_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -195,7 +195,7 @@ fn bench_rgb_to_palette_8(b: &mut Bencher) { } #[bench] -fn bench_palette_duplicate_reduction(b: &mut Bencher) { +fn reductions_palette_duplicate_reduction(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_should_be_reduced_with_dupes.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -206,7 +206,7 @@ fn bench_palette_duplicate_reduction(b: &mut Bencher) { } #[bench] -fn bench_palette_unused_reduction(b: &mut Bencher) { +fn reductions_palette_unused_reduction(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_should_be_reduced_with_unused.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -217,7 +217,7 @@ fn bench_palette_unused_reduction(b: &mut Bencher) { } #[bench] -fn bench_palette_full_reduction(b: &mut Bencher) { +fn reductions_palette_full_reduction(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_should_be_reduced_with_both.png")); let png = png::PngData::new(&input, false).unwrap(); diff --git a/benches/zopfli.rs b/benches/zopfli.rs index b8adaf0e..bbafa96d 100644 --- a/benches/zopfli.rs +++ b/benches/zopfli.rs @@ -9,7 +9,7 @@ use test::Bencher; use std::path::PathBuf; #[bench] -fn bench_zopfli_16_bits_strategy_0(b: &mut Bencher) { +fn zopfli_16_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_16_should_be_rgb_16.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -19,7 +19,7 @@ fn bench_zopfli_16_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_zopfli_8_bits_strategy_0(b: &mut Bencher) { +fn zopfli_8_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/rgb_8_should_be_rgb_8.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -29,7 +29,7 @@ fn bench_zopfli_8_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_zopfli_4_bits_strategy_0(b: &mut Bencher) { +fn zopfli_4_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_4_should_be_palette_4.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -39,7 +39,7 @@ fn bench_zopfli_4_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_zopfli_2_bits_strategy_0(b: &mut Bencher) { +fn zopfli_2_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_2_should_be_palette_2.png")); let png = png::PngData::new(&input, false).unwrap(); @@ -49,7 +49,7 @@ fn bench_zopfli_2_bits_strategy_0(b: &mut Bencher) { } #[bench] -fn bench_zopfli_1_bits_strategy_0(b: &mut Bencher) { +fn zopfli_1_bits_strategy_0(b: &mut Bencher) { let input = test::black_box(PathBuf::from("tests/files/palette_1_should_be_palette_1.png")); let png = png::PngData::new(&input, false).unwrap(); diff --git a/src/reduction.rs b/src/reduction.rs index 40b2ad2d..00a7a362 100644 --- a/src/reduction.rs +++ b/src/reduction.rs @@ -40,24 +40,7 @@ pub fn reduce_bit_depth_8_or_less(png: &PngData) -> Option<(Vec, u8)> { } pub fn reduce_rgba_to_rgb(png: &PngData) -> Option> { - let mut reduced = Vec::with_capacity(png.raw_data.len()); - let byte_depth: u8 = png.ihdr_data.bit_depth.as_u8() >> 3; - let bpp: usize = 4 * byte_depth as usize; - let colored_bytes = bpp - byte_depth as usize; - for line in png.scan_lines() { - reduced.push(line.filter); - for (i, byte) in line.data.iter().enumerate() { - if i % bpp >= colored_bytes { - if *byte != 255 { - return None; - } - } else { - reduced.push(*byte); - } - } - } - - Some(reduced) + reduce_alpha_channel(png, 4) } pub fn reduce_rgba_to_grayscale_alpha(png: &PngData) -> Option> { @@ -274,9 +257,13 @@ pub fn reduce_rgb_to_grayscale(png: &PngData) -> Option> { } pub fn reduce_grayscale_alpha_to_grayscale(png: &PngData) -> Option> { + reduce_alpha_channel(png, 2) +} + +fn reduce_alpha_channel(png: &PngData, bpp_factor: usize) -> Option> { let mut reduced = Vec::with_capacity(png.raw_data.len()); let byte_depth: u8 = png.ihdr_data.bit_depth.as_u8() >> 3; - let bpp: usize = 2 * byte_depth as usize; + let bpp: usize = bpp_factor * byte_depth as usize; let colored_bytes = bpp - byte_depth as usize; for line in png.scan_lines() { reduced.push(line.filter);