aboutsummaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authordcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2014-05-06 08:58:11 +0000
committerdcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2014-05-06 08:58:11 +0000
commit47330eedd07139db813efa35155d49de5c30e38e (patch)
tree7009e011c4fc9ab87e69698a162e8bd24ab4fac3 /Makefile.am
parentad0de93afc6bee8a8bf9f7de7f4204f4ca84eee9 (diff)
Redesign the libjpeg regression tests so that they fully cover all of the SIMD-accelerated algorithms (and most of the other ones as well)
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1267 632fc199-4ca6-4c93-a231-07263d6284db
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am285
1 files changed, 180 insertions, 105 deletions
diff --git a/Makefile.am b/Makefile.am
index 32f48e6..bf4895f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -163,40 +163,46 @@ dist-hook:
SUBDIRS += md5
-MD5_JPEG_INT = 9a68f56bc76e466aa7e52f415d0f4a5f
-MD5_JPEG_FAST = 0e1502e7fa421835e376a314fac2a39f
-MD5_JPEG_FAST_100 = 7bf72a8e741d64eecb960c97323af77c
-MD5_JPEG_FLOAT = d1623885ffafcd40c684af09e3d65cd5
-MD5_JPEG_FLOAT_NOSIMD = fb4884c35f8273f498cb32879de5c455
-MD5_JPEG_INT_GRAY = 72b51f894b8f4a10b3ee3066770aa38d
-MD5_PPM_INT = d1ed0d11f076b842525271647716aeb8
-MD5_PPM_FAST = 048298a2d2410261c0533cb97bcfef23
-MD5_PPM_FLOAT = 7f5b446ee36b2630e06785b8d42af15f
-MD5_PPM_FLOAT_NOSIMD = 64072f1dbdc5b3a187777788604971a5
-MD5_PPM_INT_2_1 = 9f9de8c0612f8d06869b960b05abf9c9
-MD5_PPM_INT_15_8 = b6875bc070720b899566cc06459b63b7
-MD5_PPM_INT_7_4 = 06a177eae05f164fac57f7a2c346ee87
-MD5_PPM_INT_13_8 = bc3452573c8152f6ae552939ee19f82f
-MD5_PPM_INT_3_2 = f5a8b88a8a7f96016f04d259cf82ed67
-MD5_PPM_INT_11_8 = d8cc73c0aaacd4556569b59437ba00a5
-MD5_PPM_INT_5_4 = 32775dd9ad2ab90f4c5b219b53e0c86c
-MD5_PPM_INT_9_8 = d25e61bc7eac0002f5b393aa223747b6
-MD5_PPM_INT_7_8 = ddb564b7c74a09494016d6cd7502a946
-MD5_PPM_INT_3_4 = 8ed8e68808c3fbc4ea764fc9d2968646
-MD5_PPM_INT_5_8 = a3363274999da2366a024efae6d16c9b
-MD5_PPM_INT_1_2 = e692a315cea26b988c8e8b29a5dbcd81
-MD5_PPM_INT_3_8 = 79eca9175652ced755155c90e785a996
-MD5_PPM_INT_1_4 = 79cd778f8bf1a117690052cacdd54eca
-MD5_PPM_INT_1_8 = 391b3d4aca640c8567d6f8745eb2142f
-MD5_PPM_FAST_1_2 = f30bcf6d32ccd44cbdd9aeaacbd9454f
-MD5_BMP_256 = 4980185e3776e89bd931736e1cddeee6
-MD5_JPEG_ARI = e986fb0a637a8d833d96e8a6d6d84ea1
-MD5_PPM_ARI = 72b59a99bcf1de24c5b27d151bde2437
-MD5_JPEG_PROG = 1c4afddc05c0a43489ee54438a482d92
-MD5_JPEG_PROG_ARI = 0a8f1c8f66e113c3cf635df0a475a617
+MD5_JPEG_RGB_ISLOW = 768e970dd57b340ff1b83c9d3d47c77b
+MD5_PPM_RGB_ISLOW = 00a257f5393fef8821f2b88ac7421291
+MD5_JPEG_422_IFAST_OPT = 2540287b79d913f91665e660303ab2c8
+MD5_PPM_422_IFAST = 35bd6b3f833bad23de82acea847129fa
+MD5_PPM_422M_IFAST = 8dbc65323d62cca7c91ba02dd1cfa81d
+MD5_JPEG_420_IFAST_Q100_PROG = 990cbe0329c882420a2094da7e5adade
+MD5_PPM_420_Q100_IFAST = 5a732542015c278ff43635e473a8a294
+MD5_PPM_420M_Q100_IFAST = ff692ee9323a3b424894862557c092f1
+MD5_JPEG_GRAY_ISLOW = 72b51f894b8f4a10b3ee3066770aa38d
+MD5_PPM_GRAY_ISLOW = 8d3596c56eace32f205deccc229aa5ed
+MD5_PPM_GRAY_RGB_ISLOW = 116424ac07b79e5e801f00508eab48ec
+MD5_JPEG_420S_IFAST_OPT = 388708217ac46273ca33086b22827ed8
+if WITH_SIMD
+MD5_JPEG_3x2_FLOAT_PROG = 343e3f8caf8af5986ebaf0bdc13b5c71
+MD5_PPM_3x2_FLOAT = 1a75f36e5904d6fc3a85a43da9ad89bb
+else
+MD5_JPEG_3x2_FLOAT_PROG = 9bca803d2042bd1eb03819e2bf92b3e5
+MD5_PPM_3x2_FLOAT = ef6a420e369440edd6b918a0cf54ba3f
+endif
+MD5_JPEG_420_ISLOW_ARI = e986fb0a637a8d833d96e8a6d6d84ea1
+MD5_JPEG_444_ISLOW_PROGARI = 0a8f1c8f66e113c3cf635df0a475a617
+MD5_PPM_420M_IFAST_ARI = 72b59a99bcf1de24c5b27d151bde2437
+MD5_JPEG_420_ISLOW = 9a68f56bc76e466aa7e52f415d0f4a5f
+MD5_PPM_420M_ISLOW_2_1 = 9f9de8c0612f8d06869b960b05abf9c9
+MD5_PPM_420M_ISLOW_15_8 = b6875bc070720b899566cc06459b63b7
+MD5_PPM_420M_ISLOW_13_8 = bc3452573c8152f6ae552939ee19f82f
+MD5_PPM_420M_ISLOW_11_8 = d8cc73c0aaacd4556569b59437ba00a5
+MD5_PPM_420M_ISLOW_9_8 = d25e61bc7eac0002f5b393aa223747b6
+MD5_PPM_420M_ISLOW_7_8 = ddb564b7c74a09494016d6cd7502a946
+MD5_PPM_420M_ISLOW_3_4 = 8ed8e68808c3fbc4ea764fc9d2968646
+MD5_PPM_420M_ISLOW_5_8 = a3363274999da2366a024efae6d16c9b
+MD5_PPM_420M_ISLOW_1_2 = e692a315cea26b988c8e8b29a5dbcd81
+MD5_PPM_420M_ISLOW_3_8 = 79eca9175652ced755155c90e785a996
+MD5_PPM_420M_ISLOW_1_4 = 79cd778f8bf1a117690052cacdd54eca
+MD5_PPM_420M_ISLOW_1_8 = 391b3d4aca640c8567d6f8745eb2142f
+MD5_BMP_420_ISLOW_256 = 4980185e3776e89bd931736e1cddeee6
MD5_JPEG_CROP = b4197f377e621c4e9b1d20471432610d
test: testclean all
+
if WITH_TURBOJPEG
if WITH_JAVA
$(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest
@@ -212,84 +218,153 @@ endif
./tjunittest -yuv -alloc
./tjunittest -yuv -noyuvpad
endif
- ./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testimages/testorig.ppm
- md5/md5cmp $(MD5_JPEG_INT) testoutint.jpg
- ./cjpeg -dct fast -opt -outfile testoutfst.jpg $(srcdir)/testimages/testorig.ppm
- md5/md5cmp $(MD5_JPEG_FAST) testoutfst.jpg
- ./cjpeg -dct fast -quality 100 -opt -outfile testoutfst100.jpg $(srcdir)/testimages/testorig.ppm
- md5/md5cmp $(MD5_JPEG_FAST_100) testoutfst100.jpg
- ./cjpeg -dct float -outfile testoutflt.jpg $(srcdir)/testimages/testorig.ppm
-if WITH_SSE_FLOAT_DCT
- md5/md5cmp $(MD5_JPEG_FLOAT) testoutflt.jpg
-else
- md5/md5cmp $(MD5_JPEG_FLOAT_NOSIMD) testoutflt.jpg
-endif
- ./cjpeg -dct int -grayscale -outfile testoutgray.jpg $(srcdir)/testimages/testorig.ppm
- md5/md5cmp $(MD5_JPEG_INT_GRAY) testoutgray.jpg
- ./djpeg -dct int -fast -ppm -outfile testoutint.ppm $(srcdir)/testimages/testorig.jpg
- md5/md5cmp $(MD5_PPM_INT) testoutint.ppm
- ./djpeg -dct fast -ppm -outfile testoutfst.ppm $(srcdir)/testimages/testorig.jpg
- md5/md5cmp $(MD5_PPM_FAST) testoutfst.ppm
- ./djpeg -dct float -ppm -outfile testoutflt.ppm $(srcdir)/testimages/testorig.jpg
-if WITH_SSE_FLOAT_DCT
- md5/md5cmp $(MD5_PPM_FLOAT) testoutflt.ppm
-else
- md5/md5cmp $(MD5_PPM_FLOAT_NOSIMD) testoutflt.ppm
-endif
- ./djpeg -dct int -nosmooth -scale 2/1 -ppm -outfile testoutint2_1.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_2_1) testoutint2_1.ppm;
- ./djpeg -dct int -nosmooth -scale 15/8 -ppm -outfile testoutint15_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_15_8) testoutint15_8.ppm;
- ./djpeg -dct int -nosmooth -scale 7/4 -ppm -outfile testoutint7_4.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_7_4) testoutint7_4.ppm;
- ./djpeg -dct int -nosmooth -scale 13/8 -ppm -outfile testoutint13_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_13_8) testoutint13_8.ppm;
- ./djpeg -dct int -nosmooth -scale 3/2 -ppm -outfile testoutint3_2.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_3_2) testoutint3_2.ppm;
- ./djpeg -dct int -nosmooth -scale 11/8 -ppm -outfile testoutint11_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_11_8) testoutint11_8.ppm;
- ./djpeg -dct int -nosmooth -scale 5/4 -ppm -outfile testoutint5_4.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_5_4) testoutint5_4.ppm;
- ./djpeg -dct int -nosmooth -scale 9/8 -ppm -outfile testoutint9_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_9_8) testoutint9_8.ppm;
- ./djpeg -dct int -nosmooth -scale 7/8 -ppm -outfile testoutint7_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_7_8) testoutint7_8.ppm;
- ./djpeg -dct int -nosmooth -scale 3/4 -ppm -outfile testoutint3_4.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_3_4) testoutint3_4.ppm;
- ./djpeg -dct int -nosmooth -scale 5/8 -ppm -outfile testoutint5_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_5_8) testoutint5_8.ppm;
- ./djpeg -dct int -nosmooth -scale 1/2 -ppm -outfile testoutint1_2.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_1_2) testoutint1_2.ppm;
- ./djpeg -dct int -nosmooth -scale 3/8 -ppm -outfile testoutint3_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_3_8) testoutint3_8.ppm;
- ./djpeg -dct int -nosmooth -scale 1/4 -ppm -outfile testoutint1_4.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_1_4) testoutint1_4.ppm;
- ./djpeg -dct int -nosmooth -scale 1/8 -ppm -outfile testoutint1_8.ppm $(srcdir)/testimages/testorig.jpg;
- md5/md5cmp $(MD5_PPM_INT_1_8) testoutint1_8.ppm;
- ./djpeg -dct fast -scale 1/2 -ppm -outfile testoutfst1_2.ppm $(srcdir)/testimages/testorig.jpg
- md5/md5cmp $(MD5_PPM_FAST_1_2) testoutfst1_2.ppm
- ./djpeg -dct int -bmp -colors 256 -outfile testout.bmp $(srcdir)/testimages/testorig.jpg
- md5/md5cmp $(MD5_BMP_256) testout.bmp
+
+# These tests are carefully crafted to provide full coverage of as many of the
+# underlying algorithms as possible (including all of the SIMD-accelerated
+# ones.)
+
+# CC: null SAMP: fullsize FDCT: islow ENT: huff
+ ./cjpeg -rgb -dct int -outfile testout_rgb_islow.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_RGB_ISLOW) testout_rgb_islow.jpg
+# CC: null SAMP: fullsize IDCT: islow ENT: huff
+ ./djpeg -dct int -ppm -outfile testout_rgb_islow.ppm testout_rgb_islow.jpg
+ md5/md5cmp $(MD5_PPM_RGB_ISLOW) testout_rgb_islow.ppm
+ rm testout_rgb_islow.ppm
+ rm testout_rgb_islow.jpg
+
+# CC: RGB->YCC SAMP: fullsize/h2v1 FDCT: ifast ENT: 2-pass huff
+ ./cjpeg -sample 2x1 -dct fast -opt -outfile testout_422_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_422_IFAST_OPT) testout_422_ifast_opt.jpg
+# CC: YCC->RGB SAMP: fullsize/h2v1 fancy IDCT: ifast ENT: huff
+ ./djpeg -dct fast -outfile testout_422_ifast.ppm testout_422_ifast_opt.jpg
+ md5/md5cmp $(MD5_PPM_422_IFAST) testout_422_ifast.ppm
+ rm testout_422_ifast.ppm
+# CC: YCC->RGB SAMP: h2v1 merged IDCT: ifast ENT: huff
+ ./djpeg -nosmooth -dct fast -outfile testout_422m_ifast.ppm testout_422_ifast_opt.jpg
+ md5/md5cmp $(MD5_PPM_422M_IFAST) testout_422m_ifast.ppm
+ rm testout_422m_ifast.ppm
+ rm testout_422_ifast_opt.jpg
+
+# CC: RGB->YCC SAMP: fullsize/h2v2 FDCT: ifast ENT: prog huff
+ ./cjpeg -sample 2x2 -dct fast -quality 100 -prog -outfile testout_420_q100_ifast_prog.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_420_IFAST_Q100_PROG) testout_420_q100_ifast_prog.jpg
+# CC: YCC->RGB SAMP: fullsize/h2v2 fancy IDCT: ifast ENT: prog huff
+ ./djpeg -dct fast -outfile testout_420_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
+ md5/md5cmp $(MD5_PPM_420_Q100_IFAST) testout_420_q100_ifast.ppm
+ rm testout_420_q100_ifast.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: ifast ENT: prog huff
+ ./djpeg -nosmooth -dct fast -outfile testout_420m_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
+ md5/md5cmp $(MD5_PPM_420M_Q100_IFAST) testout_420m_q100_ifast.ppm
+ rm testout_420m_q100_ifast.ppm
+ rm testout_420_q100_ifast_prog.jpg
+
+# CC: RGB->Gray SAMP: fullsize FDCT: islow ENT: huff
+ ./cjpeg -gray -dct int -outfile testout_gray_islow.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_GRAY_ISLOW) testout_gray_islow.jpg
+# CC: Gray->Gray SAMP: fullsize FDCT: islow ENT: huff
+ ./djpeg -dct int -outfile testout_gray_islow.ppm testout_gray_islow.jpg
+ md5/md5cmp $(MD5_PPM_GRAY_ISLOW) testout_gray_islow.ppm
+ rm testout_gray_islow.ppm
+# CC: Gray->RGB SAMP: fullsize FDCT: islow ENT: huff
+ ./djpeg -rgb -dct int -outfile testout_gray_rgb_islow.ppm testout_gray_islow.jpg
+ md5/md5cmp $(MD5_PPM_GRAY_RGB_ISLOW) testout_gray_rgb_islow.ppm
+ rm testout_gray_rgb_islow.ppm
+ rm testout_gray_islow.jpg
+
+# CC: RGB->YCC SAMP: fullsize smooth/h2v2 smooth FDCT: islow
+# ENT: 2-pass huff
+ ./cjpeg -sample 2x2 -smooth 1 -dct int -opt -outfile testout_420s_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_420S_IFAST_OPT) testout_420s_ifast_opt.jpg
+ rm testout_420s_ifast_opt.jpg
+
+# CC: RGB->YCC SAMP: fullsize/int FDCT: float ENT: prog huff
+ ./cjpeg -sample 3x2 -dct float -prog -outfile testout_3x2_float_prog.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_3x2_FLOAT_PROG) testout_3x2_float_prog.jpg
+# CC: YCC->RGB SAMP: fullsize/int IDCT: float ENT: prog huff
+ ./djpeg -dct float -outfile testout_3x2_float.ppm testout_3x2_float_prog.jpg
+ md5/md5cmp $(MD5_PPM_3x2_FLOAT) testout_3x2_float.ppm
+ rm testout_3x2_float.ppm
+ rm testout_3x2_float_prog.jpg
+
if WITH_ARITH_ENC
- ./cjpeg -dct int -arithmetic -outfile testoutari.jpg $(srcdir)/testimages/testorig.ppm
- md5/md5cmp $(MD5_JPEG_ARI) testoutari.jpg
- ./jpegtran -arithmetic -outfile testouta.jpg $(srcdir)/testimages/testimgint.jpg
- md5/md5cmp $(MD5_JPEG_ARI) testouta.jpg
- ./cjpeg -dct int -progressive -arithmetic -sample 1x1 -outfile testoutpa.jpg $(srcdir)/testimages/testorig.ppm
- md5/md5cmp $(MD5_JPEG_PROG_ARI) testoutpa.jpg
+# CC: YCC->RGB SAMP: fullsize/h2v2 FDCT: islow ENT: arith
+ ./cjpeg -dct int -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg
+ rm testout_420_islow_ari.jpg
+ ./jpegtran -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testimgint.jpg
+ md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg
+ rm testout_420_islow_ari.jpg
+# CC: YCC->RGB SAMP: fullsize FDCT: islow ENT: prog arith
+ ./cjpeg -dct int -progressive -arithmetic -sample 1x1 -outfile testout_444_islow_progari.jpg $(srcdir)/testimages/testorig.ppm
+ md5/md5cmp $(MD5_JPEG_444_ISLOW_PROGARI) testout_444_islow_progari.jpg
+ rm testout_444_islow_progari.jpg
endif
if WITH_ARITH_DEC
- ./djpeg -dct int -fast -ppm -outfile testoutari.ppm $(srcdir)/testimages/testimgari.jpg
- md5/md5cmp $(MD5_PPM_ARI) testoutari.ppm
- ./jpegtran -outfile testouta.jpg $(srcdir)/testimages/testimgari.jpg
- md5/md5cmp $(MD5_JPEG_INT) testouta.jpg
+# CC: RGB->YCC SAMP: h2v2 merged IDCT: ifast ENT: arith
+ ./djpeg -fast -ppm -outfile testout_420m_ifast_ari.ppm $(srcdir)/testimages/testimgari.jpg
+ md5/md5cmp $(MD5_PPM_420M_IFAST_ARI) testout_420m_ifast_ari.ppm
+ rm testout_420m_ifast_ari.ppm
+ ./jpegtran -outfile testout_420_islow.jpg $(srcdir)/testimages/testimgari.jpg
+ md5/md5cmp $(MD5_JPEG_420_ISLOW) testout_420_islow.jpg
+ rm testout_420_islow.jpg
endif
- ./cjpeg -dct int -progressive -outfile testoutp.jpg $(srcdir)/testimages/testorig.ppm
- md5/md5cmp $(MD5_JPEG_PROG) testoutp.jpg
- ./jpegtran -outfile testoutt.jpg testoutp.jpg
- md5/md5cmp $(MD5_JPEG_INT) testoutt.jpg
- ./jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testoutcrop.jpg $(srcdir)/testimages/testorig.jpg
- md5/md5cmp $(MD5_JPEG_CROP) testoutcrop.jpg
+
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 16x16 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 2/1 -ppm -outfile testout_420m_islow_2_1.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_2_1) testout_420m_islow_2_1.ppm
+ rm testout_420m_islow_2_1.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 15x15 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 15/8 -ppm -outfile testout_420m_islow_15_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_15_8) testout_420m_islow_15_8.ppm
+ rm testout_420m_islow_15_8.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 13x13 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 13/8 -ppm -outfile testout_420m_islow_13_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_13_8) testout_420m_islow_13_8.ppm
+ rm testout_420m_islow_13_8.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 11x11 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 11/8 -ppm -outfile testout_420m_islow_11_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_11_8) testout_420m_islow_11_8.ppm
+ rm testout_420m_islow_11_8.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 9x9 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 9/8 -ppm -outfile testout_420m_islow_9_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_9_8) testout_420m_islow_9_8.ppm
+ rm testout_420m_islow_9_8.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 7x7 islow/14x14 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 7/8 -ppm -outfile testout_420m_islow_7_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_7_8) testout_420m_islow_7_8.ppm
+ rm testout_420m_islow_7_8.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 6x6 islow/12x12 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 3/4 -ppm -outfile testout_420m_islow_3_4.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_3_4) testout_420m_islow_3_4.ppm
+ rm testout_420m_islow_3_4.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 5x5 islow/10x10 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 5/8 -ppm -outfile testout_420m_islow_5_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_5_8) testout_420m_islow_5_8.ppm
+ rm testout_420m_islow_5_8.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 4x4 islow/8x8 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 1/2 -ppm -outfile testout_420m_islow_1_2.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_1_2) testout_420m_islow_1_2.ppm
+ rm testout_420m_islow_1_2.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 3x3 islow/6x6 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 3/8 -ppm -outfile testout_420m_islow_3_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_3_8) testout_420m_islow_3_8.ppm
+ rm testout_420m_islow_3_8.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 2x2 islow/4x4 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 1/4 -ppm -outfile testout_420m_islow_1_4.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_1_4) testout_420m_islow_1_4.ppm
+ rm testout_420m_islow_1_4.ppm
+# CC: YCC->RGB SAMP: h2v2 merged IDCT: 1x1 islow/2x2 islow ENT: huff
+ ./djpeg -dct int -nosmooth -scale 1/8 -ppm -outfile testout_420m_islow_1_8.ppm $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_PPM_420M_ISLOW_1_8) testout_420m_islow_1_8.ppm
+ rm testout_420m_islow_1_8.ppm
+# CC: YCC->RGB (dithered) SAMP: h2v2 fancy IDCT: islow ENT: huff
+ ./djpeg -dct int -bmp -colors 256 -outfile testout_420_islow_256.bmp $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_BMP_420_ISLOW_256) testout_420_islow_256.bmp
+ rm testout_420_islow_256.bmp
+
+ ./jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testout_crop.jpg $(srcdir)/testimages/testorig.jpg
+ md5/md5cmp $(MD5_JPEG_CROP) testout_crop.jpg
+ rm testout_crop.jpg
testclean: