image_pack 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/README.md +29 -5
  4. data/ext/image_pack/extconf.rb +2 -2
  5. data/ext/image_pack/image_pack.c +742 -263
  6. data/ext/image_pack/mozjpeg_sources.rb +5 -0
  7. data/ext/image_pack/vendor/mozjpeg/transupp.c +2373 -0
  8. data/lib/image_pack/version.rb +1 -1
  9. data/lib/image_pack.rb +121 -7
  10. metadata +6 -104
  11. data/ext/image_pack/vendor/mozjpeg/croptest.in +0 -95
  12. data/ext/image_pack/vendor/mozjpeg/libjpeg.map.in +0 -11
  13. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd_neon.S +0 -1200
  14. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jsimd_neon.S +0 -2254
  15. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-avx2.asm +0 -578
  16. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-mmx.asm +0 -476
  17. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-sse2.asm +0 -503
  18. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-avx2.asm +0 -121
  19. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-mmx.asm +0 -121
  20. data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-sse2.asm +0 -120
  21. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-avx2.asm +0 -113
  22. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-mmx.asm +0 -113
  23. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-sse2.asm +0 -112
  24. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-avx2.asm +0 -457
  25. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-mmx.asm +0 -355
  26. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-sse2.asm +0 -382
  27. data/ext/image_pack/vendor/mozjpeg/simd/i386/jchuff-sse2.asm +0 -761
  28. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcphuff-sse2.asm +0 -662
  29. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-avx2.asm +0 -388
  30. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-mmx.asm +0 -324
  31. data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-sse2.asm +0 -351
  32. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-avx2.asm +0 -515
  33. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-mmx.asm +0 -404
  34. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-sse2.asm +0 -458
  35. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-avx2.asm +0 -118
  36. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-mmx.asm +0 -117
  37. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-sse2.asm +0 -117
  38. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-avx2.asm +0 -136
  39. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-mmx.asm +0 -123
  40. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-sse2.asm +0 -135
  41. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-avx2.asm +0 -575
  42. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-mmx.asm +0 -460
  43. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-sse2.asm +0 -517
  44. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-avx2.asm +0 -760
  45. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-mmx.asm +0 -731
  46. data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-sse2.asm +0 -724
  47. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctflt-3dn.asm +0 -318
  48. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctflt-sse.asm +0 -369
  49. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctfst-mmx.asm +0 -395
  50. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctfst-sse2.asm +0 -403
  51. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-avx2.asm +0 -331
  52. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-mmx.asm +0 -620
  53. data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-sse2.asm +0 -633
  54. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-3dn.asm +0 -451
  55. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-sse.asm +0 -571
  56. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-sse2.asm +0 -497
  57. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctfst-mmx.asm +0 -499
  58. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctfst-sse2.asm +0 -501
  59. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-avx2.asm +0 -453
  60. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-mmx.asm +0 -851
  61. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-sse2.asm +0 -858
  62. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctred-mmx.asm +0 -704
  63. data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctred-sse2.asm +0 -592
  64. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-3dn.asm +0 -230
  65. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-mmx.asm +0 -276
  66. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-sse.asm +0 -208
  67. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquantf-sse2.asm +0 -168
  68. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-avx2.asm +0 -188
  69. data/ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-sse2.asm +0 -201
  70. data/ext/image_pack/vendor/mozjpeg/simd/i386/jsimdcpu.asm +0 -135
  71. data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2.S +0 -4543
  72. data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2_asm.h +0 -292
  73. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample.h +0 -28
  74. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd_mmi.h +0 -69
  75. data/ext/image_pack/vendor/mozjpeg/simd/mips64/loongson-mmintrin.h +0 -1334
  76. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample.h +0 -28
  77. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd_altivec.h +0 -98
  78. data/ext/image_pack/vendor/mozjpeg/tjbenchtest.in +0 -256
  79. data/ext/image_pack/vendor/mozjpeg/tjbenchtest.java.in +0 -215
  80. data/ext/image_pack/vendor/mozjpeg/tjexampletest.in +0 -149
  81. data/ext/image_pack/vendor/mozjpeg/tjexampletest.java.in +0 -151
@@ -1,28 +0,0 @@
1
- /*
2
- * jcsample.h
3
- *
4
- * This file was part of the Independent JPEG Group's software:
5
- * Copyright (C) 1991-1996, Thomas G. Lane.
6
- * For conditions of distribution and use, see the accompanying README.ijg
7
- * file.
8
- */
9
-
10
- LOCAL(void)
11
- expand_right_edge(JSAMPARRAY image_data, int num_rows, JDIMENSION input_cols,
12
- JDIMENSION output_cols)
13
- {
14
- register JSAMPROW ptr;
15
- register JSAMPLE pixval;
16
- register int count;
17
- int row;
18
- int numcols = (int)(output_cols - input_cols);
19
-
20
- if (numcols > 0) {
21
- for (row = 0; row < num_rows; row++) {
22
- ptr = image_data[row] + input_cols;
23
- pixval = ptr[-1];
24
- for (count = numcols; count > 0; count--)
25
- *ptr++ = pixval;
26
- }
27
- }
28
- }
@@ -1,98 +0,0 @@
1
- /*
2
- * AltiVec optimizations for libjpeg-turbo
3
- *
4
- * Copyright (C) 2014-2015, D. R. Commander. All Rights Reserved.
5
- *
6
- * This software is provided 'as-is', without any express or implied
7
- * warranty. In no event will the authors be held liable for any damages
8
- * arising from the use of this software.
9
- *
10
- * Permission is granted to anyone to use this software for any purpose,
11
- * including commercial applications, and to alter it and redistribute it
12
- * freely, subject to the following restrictions:
13
- *
14
- * 1. The origin of this software must not be misrepresented; you must not
15
- * claim that you wrote the original software. If you use this software
16
- * in a product, an acknowledgment in the product documentation would be
17
- * appreciated but is not required.
18
- * 2. Altered source versions must be plainly marked as such, and must not be
19
- * misrepresented as being the original software.
20
- * 3. This notice may not be removed or altered from any source distribution.
21
- */
22
-
23
- #define JPEG_INTERNALS
24
- #include "../../jinclude.h"
25
- #include "../../jpeglib.h"
26
- #include "../../jsimd.h"
27
- #include "../../jdct.h"
28
- #include "../../jsimddct.h"
29
- #include "../jsimd.h"
30
- #include <altivec.h>
31
-
32
-
33
- /* Common code */
34
-
35
- #define __4X(a) a, a, a, a
36
- #define __4X2(a, b) a, b, a, b, a, b, a, b
37
- #define __8X(a) __4X(a), __4X(a)
38
- #define __16X(a) __8X(a), __8X(a)
39
-
40
- #define TRANSPOSE(row, col) { \
41
- __vector short row04l, row04h, row15l, row15h, \
42
- row26l, row26h, row37l, row37h; \
43
- __vector short col01e, col01o, col23e, col23o, \
44
- col45e, col45o, col67e, col67o; \
45
- \
46
- /* transpose coefficients (phase 1) */ \
47
- row04l = vec_mergeh(row##0, row##4); /* row04l=(00 40 01 41 02 42 03 43) */ \
48
- row04h = vec_mergel(row##0, row##4); /* row04h=(04 44 05 45 06 46 07 47) */ \
49
- row15l = vec_mergeh(row##1, row##5); /* row15l=(10 50 11 51 12 52 13 53) */ \
50
- row15h = vec_mergel(row##1, row##5); /* row15h=(14 54 15 55 16 56 17 57) */ \
51
- row26l = vec_mergeh(row##2, row##6); /* row26l=(20 60 21 61 22 62 23 63) */ \
52
- row26h = vec_mergel(row##2, row##6); /* row26h=(24 64 25 65 26 66 27 67) */ \
53
- row37l = vec_mergeh(row##3, row##7); /* row37l=(30 70 31 71 32 72 33 73) */ \
54
- row37h = vec_mergel(row##3, row##7); /* row37h=(34 74 35 75 36 76 37 77) */ \
55
- \
56
- /* transpose coefficients (phase 2) */ \
57
- col01e = vec_mergeh(row04l, row26l); /* col01e=(00 20 40 60 01 21 41 61) */ \
58
- col23e = vec_mergel(row04l, row26l); /* col23e=(02 22 42 62 03 23 43 63) */ \
59
- col45e = vec_mergeh(row04h, row26h); /* col45e=(04 24 44 64 05 25 45 65) */ \
60
- col67e = vec_mergel(row04h, row26h); /* col67e=(06 26 46 66 07 27 47 67) */ \
61
- col01o = vec_mergeh(row15l, row37l); /* col01o=(10 30 50 70 11 31 51 71) */ \
62
- col23o = vec_mergel(row15l, row37l); /* col23o=(12 32 52 72 13 33 53 73) */ \
63
- col45o = vec_mergeh(row15h, row37h); /* col45o=(14 34 54 74 15 35 55 75) */ \
64
- col67o = vec_mergel(row15h, row37h); /* col67o=(16 36 56 76 17 37 57 77) */ \
65
- \
66
- /* transpose coefficients (phase 3) */ \
67
- col##0 = vec_mergeh(col01e, col01o); /* col0=(00 10 20 30 40 50 60 70) */ \
68
- col##1 = vec_mergel(col01e, col01o); /* col1=(01 11 21 31 41 51 61 71) */ \
69
- col##2 = vec_mergeh(col23e, col23o); /* col2=(02 12 22 32 42 52 62 72) */ \
70
- col##3 = vec_mergel(col23e, col23o); /* col3=(03 13 23 33 43 53 63 73) */ \
71
- col##4 = vec_mergeh(col45e, col45o); /* col4=(04 14 24 34 44 54 64 74) */ \
72
- col##5 = vec_mergel(col45e, col45o); /* col5=(05 15 25 35 45 55 65 75) */ \
73
- col##6 = vec_mergeh(col67e, col67o); /* col6=(06 16 26 36 46 56 66 76) */ \
74
- col##7 = vec_mergel(col67e, col67o); /* col7=(07 17 27 37 47 57 67 77) */ \
75
- }
76
-
77
- #ifndef min
78
- #define min(a, b) ((a) < (b) ? (a) : (b))
79
- #endif
80
-
81
-
82
- /* Macros to abstract big/little endian bit twiddling */
83
-
84
- #if __BIG_ENDIAN__
85
-
86
- #define VEC_LD(a, b) vec_ld(a, b)
87
- #define VEC_ST(a, b, c) vec_st(a, b, c)
88
- #define VEC_UNPACKHU(a) vec_mergeh(pb_zero, a)
89
- #define VEC_UNPACKLU(a) vec_mergel(pb_zero, a)
90
-
91
- #else
92
-
93
- #define VEC_LD(a, b) vec_vsx_ld(a, b)
94
- #define VEC_ST(a, b, c) vec_vsx_st(a, b, c)
95
- #define VEC_UNPACKHU(a) vec_mergeh(a, pb_zero)
96
- #define VEC_UNPACKLU(a) vec_mergel(a, pb_zero)
97
-
98
- #endif
@@ -1,256 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -u
4
- set -e
5
- trap onexit INT
6
- trap onexit TERM
7
- trap onexit EXIT
8
-
9
- onexit()
10
- {
11
- if [ -d $OUTDIR ]; then
12
- rm -rf $OUTDIR
13
- fi
14
- }
15
-
16
- runme()
17
- {
18
- echo \*\*\* $*
19
- $*
20
- }
21
-
22
- EXT=bmp
23
- IMAGES="vgl_5674_0098.${EXT} vgl_6434_0018a.${EXT} vgl_6548_0026a.${EXT} nightshot_iso_100.${EXT}"
24
- IMGDIR=@CMAKE_CURRENT_SOURCE_DIR@/testimages
25
- OUTDIR=`mktemp -d /tmp/__tjbenchtest_output.XXXXXX`
26
- EXEDIR=@CMAKE_CURRENT_BINARY_DIR@
27
- BMPARG=
28
- NSARG=
29
- YUVARG=
30
- ALLOC=0
31
- ALLOCARG=
32
- PROGARG=
33
- if [ "$EXT" = "bmp" ]; then BMPARG=-bmp; fi
34
-
35
- if [ -d $OUTDIR ]; then
36
- rm -rf $OUTDIR
37
- fi
38
- mkdir -p $OUTDIR
39
-
40
- while [ $# -gt 0 ]; do
41
- case "$1" in
42
- -yuv)
43
- NSARG=-nosmooth
44
- YUVARG=-yuv
45
-
46
- # NOTE: The combination of tjEncodeYUV*() and tjCompressFromYUV*() does not
47
- # always produce bitwise-identical results to tjCompress*() if subsampling is
48
- # enabled. In both cases, if the image width or height are not evenly
49
- # divisible by the MCU width/height, then the bottom and/or right edge are
50
- # expanded. However, the libjpeg code performs this expansion prior to
51
- # downsampling, and TurboJPEG performs it in tjCompressFromYUV*(), which is
52
- # after downsampling. Thus, the two will agree only if the width/height along
53
- # each downsampled dimension is an odd number or is evenly divisible by the MCU
54
- # width/height. This disagreement basically amounts to a round-off error, but
55
- # there is no easy way around it, so for now, we just test the only image that
56
- # works. (NOTE: nightshot_iso_100 does not suffer from the above issue, but
57
- # it suffers from an unrelated problem whereby the combination of
58
- # tjDecompressToYUV*() and tjDecodeYUV*() do not produce bitwise-identical
59
- # results to tjDecompress*() if decompression scaling is enabled. This latter
60
- # phenomenon is not yet fully understood but is also believed to be some sort
61
- # of round-off error.)
62
- IMAGES="vgl_6548_0026a.${EXT}"
63
- ;;
64
- -alloc)
65
- ALLOCARG=-alloc
66
- ALLOC=1
67
- ;;
68
- -progressive)
69
- PROGARG=-progressive
70
- ;;
71
- esac
72
- shift
73
- done
74
-
75
- exec >$EXEDIR/tjbenchtest$YUVARG$ALLOCARG$PROGARG.log
76
-
77
- # Standard tests
78
- for image in $IMAGES; do
79
-
80
- cp $IMGDIR/$image $OUTDIR
81
- basename=`basename $image .${EXT}`
82
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -grayscale -outfile $OUTDIR/${basename}_GRAY_fast_cjpeg.jpg $IMGDIR/${basename}.${EXT}
83
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 2x2 -outfile $OUTDIR/${basename}_420_fast_cjpeg.jpg $IMGDIR/${basename}.${EXT}
84
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 2x1 -outfile $OUTDIR/${basename}_422_fast_cjpeg.jpg $IMGDIR/${basename}.${EXT}
85
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 1x1 -outfile $OUTDIR/${basename}_444_fast_cjpeg.jpg $IMGDIR/${basename}.${EXT}
86
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -grayscale -outfile $OUTDIR/${basename}_GRAY_accurate_cjpeg.jpg $IMGDIR/${basename}.${EXT}
87
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 2x2 -outfile $OUTDIR/${basename}_420_accurate_cjpeg.jpg $IMGDIR/${basename}.${EXT}
88
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 2x1 -outfile $OUTDIR/${basename}_422_accurate_cjpeg.jpg $IMGDIR/${basename}.${EXT}
89
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 1x1 -outfile $OUTDIR/${basename}_444_accurate_cjpeg.jpg $IMGDIR/${basename}.${EXT}
90
- for samp in GRAY 420 422 444; do
91
- runme $EXEDIR/djpeg -rgb $NSARG $BMPARG -outfile $OUTDIR/${basename}_${samp}_default_djpeg.${EXT} $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
92
- runme $EXEDIR/djpeg -dct fast -rgb $NSARG $BMPARG -outfile $OUTDIR/${basename}_${samp}_fast_djpeg.${EXT} $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
93
- runme $EXEDIR/djpeg -dct int -rgb $NSARG $BMPARG -outfile $OUTDIR/${basename}_${samp}_accurate_djpeg.${EXT} $OUTDIR/${basename}_${samp}_accurate_cjpeg.jpg
94
- done
95
- for samp in 420 422; do
96
- runme $EXEDIR/djpeg -nosmooth $BMPARG -outfile $OUTDIR/${basename}_${samp}_default_nosmooth_djpeg.${EXT} $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
97
- runme $EXEDIR/djpeg -dct fast -nosmooth $BMPARG -outfile $OUTDIR/${basename}_${samp}_fast_nosmooth_djpeg.${EXT} $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
98
- runme $EXEDIR/djpeg -dct int -nosmooth $BMPARG -outfile $OUTDIR/${basename}_${samp}_accurate_nosmooth_djpeg.${EXT} $OUTDIR/${basename}_${samp}_accurate_cjpeg.jpg
99
- done
100
-
101
- # Compression
102
- for dct in accurate fast; do
103
- runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -quiet -benchtime 0.01 -warmup 0 -${dct}dct $YUVARG $ALLOCARG $PROGARG
104
- for samp in GRAY 420 422 444; do
105
- runme cmp $OUTDIR/${basename}_${samp}_Q95.jpg $OUTDIR/${basename}_${samp}_${dct}_cjpeg.jpg
106
- done
107
- done
108
-
109
- for dct in fast accurate default; do
110
- dctarg=-${dct}dct
111
- if [ "${dct}" = "default" ]; then
112
- dctarg=
113
- fi
114
-
115
- # Tiled compression & decompression
116
- runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $ALLOCARG $PROGARG
117
- for samp in GRAY 444; do
118
- if [ $ALLOC = 1 ]; then
119
- runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
120
- rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
121
- else
122
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
123
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
124
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
125
- rm $i
126
- done
127
- fi
128
- done
129
- runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $ALLOCARG $PROGARG
130
- for samp in 420 422; do
131
- if [ $ALLOC = 1 ]; then
132
- runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
133
- rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
134
- else
135
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
136
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
137
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
138
- rm $i
139
- done
140
- fi
141
- done
142
-
143
- # Tiled decompression
144
- for samp in GRAY 444; do
145
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $ALLOCARG $PROGARG
146
- if [ $ALLOC = 1 ]; then
147
- runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
148
- rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
149
- else
150
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
151
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
152
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
153
- rm $i
154
- done
155
- fi
156
- done
157
- for samp in 420 422; do
158
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $ALLOCARG $PROGARG
159
- if [ $ALLOC = 1 ]; then
160
- runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
161
- rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
162
- else
163
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
164
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
165
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
166
- rm $i
167
- done
168
- fi
169
- done
170
- done
171
-
172
- # Scaled decompression
173
- for scale in 2_1 15_8 7_4 13_8 3_2 11_8 5_4 9_8 7_8 3_4 5_8 1_2 3_8 1_4 1_8; do
174
- scalearg=`echo $scale | sed 's/\_/\//g'`
175
- for samp in GRAY 420 422 444; do
176
- runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG $BMPARG -outfile $OUTDIR/${basename}_${samp}_${scale}_djpeg.${EXT} $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
177
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $ALLOCARG $PROGARG
178
- runme cmp $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT} $OUTDIR/${basename}_${samp}_${scale}_djpeg.${EXT}
179
- rm $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT}
180
- done
181
- done
182
-
183
- # Transforms
184
- for samp in GRAY 420 422 444; do
185
- runme $EXEDIR/jpegtran -flip horizontal -trim -outfile $OUTDIR/${basename}_${samp}_hflip_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
186
- runme $EXEDIR/jpegtran -flip vertical -trim -outfile $OUTDIR/${basename}_${samp}_vflip_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
187
- runme $EXEDIR/jpegtran -transpose -trim -outfile $OUTDIR/${basename}_${samp}_transpose_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
188
- runme $EXEDIR/jpegtran -transverse -trim -outfile $OUTDIR/${basename}_${samp}_transverse_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
189
- runme $EXEDIR/jpegtran -rotate 90 -trim -outfile $OUTDIR/${basename}_${samp}_rot90_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
190
- runme $EXEDIR/jpegtran -rotate 180 -trim -outfile $OUTDIR/${basename}_${samp}_rot180_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
191
- runme $EXEDIR/jpegtran -rotate 270 -trim -outfile $OUTDIR/${basename}_${samp}_rot270_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
192
- done
193
- for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
194
- for samp in GRAY 444; do
195
- runme $EXEDIR/djpeg -rgb $BMPARG -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
196
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 $YUVARG $ALLOCARG $PROGARG
197
- if [ $ALLOC = 1 ]; then
198
- runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
199
- rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
200
- else
201
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
202
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
203
- runme cmp $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
204
- rm $i
205
- done
206
- fi
207
- done
208
- for samp in 420 422; do
209
- runme $EXEDIR/djpeg -nosmooth -rgb $BMPARG -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
210
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample $YUVARG $ALLOCARG $PROGARG
211
- if [ $ALLOC = 1 ]; then
212
- runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
213
- rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
214
- else
215
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
216
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
217
- runme cmp $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
218
- rm $i
219
- done
220
- fi
221
- done
222
- done
223
-
224
- # Grayscale transform
225
- for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
226
- for samp in GRAY 444 422 420; do
227
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 -grayscale $YUVARG $ALLOCARG $PROGARG
228
- if [ $ALLOC = 1 ]; then
229
- runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_GRAY_${xform}_jpegtran.${EXT}
230
- rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
231
- else
232
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
233
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
234
- runme cmp $i $OUTDIR/${basename}_GRAY_${xform}_jpegtran.${EXT}
235
- rm $i
236
- done
237
- fi
238
- done
239
- done
240
-
241
- # Transforms with scaling
242
- for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
243
- for samp in GRAY 444 422 420; do
244
- for scale in 2_1 15_8 7_4 13_8 3_2 11_8 5_4 9_8 7_8 3_4 5_8 1_2 3_8 1_4 1_8; do
245
- scalearg=`echo $scale | sed 's/\_/\//g'`
246
- runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG $BMPARG -outfile $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
247
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $ALLOCARG $PROGARG
248
- runme cmp $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT} $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.${EXT}
249
- rm $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT}
250
- done
251
- done
252
- done
253
-
254
- done
255
-
256
- echo SUCCESS!
@@ -1,215 +0,0 @@
1
- #!/bin/bash
2
-
3
- set -u
4
- set -e
5
- trap onexit INT
6
- trap onexit TERM
7
- trap onexit EXIT
8
-
9
- onexit()
10
- {
11
- if [ -d $OUTDIR ]; then
12
- rm -rf $OUTDIR
13
- fi
14
- }
15
-
16
- runme()
17
- {
18
- echo \*\*\* $*
19
- "$@"
20
- }
21
-
22
- IMAGES="vgl_5674_0098.bmp vgl_6434_0018a.bmp vgl_6548_0026a.bmp nightshot_iso_100.bmp"
23
- IMGDIR=@CMAKE_CURRENT_SOURCE_DIR@/testimages
24
- OUTDIR=`mktemp -d /tmp/__tjbenchtest_java_output.XXXXXX`
25
- EXEDIR=@CMAKE_CURRENT_BINARY_DIR@
26
- JAVA="@Java_JAVA_EXECUTABLE@"
27
- JAVAARGS="-cp $EXEDIR/java/turbojpeg.jar -Djava.library.path=$EXEDIR"
28
- BMPARG=
29
- NSARG=
30
- YUVARG=
31
- PROGARG=
32
-
33
- if [ -d $OUTDIR ]; then
34
- rm -rf $OUTDIR
35
- fi
36
- mkdir -p $OUTDIR
37
-
38
- while [ $# -gt 0 ]; do
39
- case "$1" in
40
- -yuv)
41
- NSARG=-nosmooth
42
- YUVARG=-yuv
43
-
44
- # NOTE: The combination of tjEncodeYUV*() and tjCompressFromYUV*() does not
45
- # always produce bitwise-identical results to tjCompress*() if subsampling is
46
- # enabled. In both cases, if the image width or height are not evenly
47
- # divisible by the MCU width/height, then the bottom and/or right edge are
48
- # expanded. However, the libjpeg code performs this expansion prior to
49
- # downsampling, and TurboJPEG performs it in tjCompressFromYUV*(), which is
50
- # after downsampling. Thus, the two will agree only if the width/height along
51
- # each downsampled dimension is an odd number or is evenly divisible by the MCU
52
- # width/height. This disagreement basically amounts to a round-off error, but
53
- # there is no easy way around it, so for now, we just test the only image that
54
- # works. (NOTE: nightshot_iso_100 does not suffer from the above issue, but
55
- # it suffers from an unrelated problem whereby the combination of
56
- # tjDecompressToYUV*() and tjDecodeYUV*() do not produce bitwise-identical
57
- # results to tjDecompress*() if decompression scaling is enabled. This latter
58
- # phenomenon is not yet fully understood but is also believed to be some sort
59
- # of round-off error.)
60
- IMAGES="vgl_6548_0026a.bmp"
61
- ;;
62
- -progressive)
63
- PROGARG=-progressive
64
- ;;
65
- esac
66
- shift
67
- done
68
-
69
- exec >$EXEDIR/tjbenchtest-java$YUVARG$PROGARG.log
70
-
71
- # Standard tests
72
- for image in $IMAGES; do
73
-
74
- cp $IMGDIR/$image $OUTDIR
75
- basename=`basename $image .bmp`
76
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -grayscale -outfile $OUTDIR/${basename}_GRAY_fast_cjpeg.jpg $IMGDIR/${basename}.bmp
77
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 2x2 -outfile $OUTDIR/${basename}_420_fast_cjpeg.jpg $IMGDIR/${basename}.bmp
78
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 2x1 -outfile $OUTDIR/${basename}_422_fast_cjpeg.jpg $IMGDIR/${basename}.bmp
79
- runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 1x1 -outfile $OUTDIR/${basename}_444_fast_cjpeg.jpg $IMGDIR/${basename}.bmp
80
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -grayscale -outfile $OUTDIR/${basename}_GRAY_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp
81
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 2x2 -outfile $OUTDIR/${basename}_420_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp
82
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 2x1 -outfile $OUTDIR/${basename}_422_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp
83
- runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 1x1 -outfile $OUTDIR/${basename}_444_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp
84
- for samp in GRAY 420 422 444; do
85
- runme $EXEDIR/djpeg -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_default_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
86
- runme $EXEDIR/djpeg -dct fast -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_fast_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
87
- runme $EXEDIR/djpeg -dct int -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_accurate_djpeg.bmp $OUTDIR/${basename}_${samp}_accurate_cjpeg.jpg
88
- done
89
- for samp in 420 422; do
90
- runme $EXEDIR/djpeg -nosmooth -bmp -outfile $OUTDIR/${basename}_${samp}_default_nosmooth_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
91
- runme $EXEDIR/djpeg -dct fast -nosmooth -bmp -outfile $OUTDIR/${basename}_${samp}_fast_nosmooth_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
92
- runme $EXEDIR/djpeg -dct int -nosmooth -bmp -outfile $OUTDIR/${basename}_${samp}_accurate_nosmooth_djpeg.bmp $OUTDIR/${basename}_${samp}_accurate_cjpeg.jpg
93
- done
94
-
95
- # Compression
96
- for dct in accurate fast; do
97
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/$image 95 -rgb -quiet -benchtime 0.01 -warmup 0 -${dct}dct $YUVARG $PROGARG
98
- for samp in GRAY 420 422 444; do
99
- runme cmp $OUTDIR/${basename}_${samp}_Q95.jpg $OUTDIR/${basename}_${samp}_${dct}_cjpeg.jpg
100
- done
101
- done
102
-
103
- for dct in fast accurate default; do
104
- dctarg=-${dct}dct
105
- if [ "${dct}" = "default" ]; then
106
- dctarg=
107
- fi
108
-
109
- # Tiled compression & decompression
110
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $PROGARG
111
- for samp in GRAY 444; do
112
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \
113
- $OUTDIR/${basename}_${samp}_Q95_full.bmp; do
114
- runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.bmp
115
- rm $i
116
- done
117
- done
118
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $PROGARG
119
- for samp in 420 422; do
120
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \
121
- $OUTDIR/${basename}_${samp}_Q95_full.bmp; do
122
- runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.bmp
123
- rm $i
124
- done
125
- done
126
-
127
- # Tiled decompression
128
- for samp in GRAY 444; do
129
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $PROGARG
130
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \
131
- $OUTDIR/${basename}_${samp}_Q95_full.bmp; do
132
- runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.bmp
133
- rm $i
134
- done
135
- done
136
- for samp in 420 422; do
137
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $PROGARG
138
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \
139
- $OUTDIR/${basename}_${samp}_Q95_full.bmp; do
140
- runme cmp $i -i 54:54 $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.bmp
141
- rm $i
142
- done
143
- done
144
- done
145
-
146
- # Scaled decompression
147
- for scale in 2_1 15_8 7_4 13_8 3_2 11_8 5_4 9_8 7_8 3_4 5_8 1_2 3_8 1_4 1_8; do
148
- scalearg=`echo $scale | sed 's/\_/\//g'`
149
- for samp in GRAY 420 422 444; do
150
- runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG -bmp -outfile $OUTDIR/${basename}_${samp}_${scale}_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
151
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $PROGARG
152
- runme cmp -i 54:54 $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp $OUTDIR/${basename}_${samp}_${scale}_djpeg.bmp
153
- rm $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp
154
- done
155
- done
156
-
157
- # Transforms
158
- for samp in GRAY 420 422 444; do
159
- runme $EXEDIR/jpegtran -flip horizontal -trim -outfile $OUTDIR/${basename}_${samp}_hflip_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
160
- runme $EXEDIR/jpegtran -flip vertical -trim -outfile $OUTDIR/${basename}_${samp}_vflip_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
161
- runme $EXEDIR/jpegtran -transpose -trim -outfile $OUTDIR/${basename}_${samp}_transpose_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
162
- runme $EXEDIR/jpegtran -transverse -trim -outfile $OUTDIR/${basename}_${samp}_transverse_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
163
- runme $EXEDIR/jpegtran -rotate 90 -trim -outfile $OUTDIR/${basename}_${samp}_rot90_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
164
- runme $EXEDIR/jpegtran -rotate 180 -trim -outfile $OUTDIR/${basename}_${samp}_rot180_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
165
- runme $EXEDIR/jpegtran -rotate 270 -trim -outfile $OUTDIR/${basename}_${samp}_rot270_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg
166
- done
167
- for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
168
- for samp in GRAY 444; do
169
- runme $EXEDIR/djpeg -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
170
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -tile -quiet -benchtime 0.01 -warmup 0 $YUVARG $PROGARG
171
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \
172
- $OUTDIR/${basename}_${samp}_Q95_full.bmp; do
173
- runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp
174
- rm $i
175
- done
176
- done
177
- for samp in 420 422; do
178
- runme $EXEDIR/djpeg -nosmooth -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
179
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample $YUVARG $PROGARG
180
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \
181
- $OUTDIR/${basename}_${samp}_Q95_full.bmp; do
182
- runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp
183
- rm $i
184
- done
185
- done
186
- done
187
-
188
- # Grayscale transform
189
- for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
190
- for samp in GRAY 444 422 420; do
191
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -tile -quiet -benchtime 0.01 -warmup 0 -grayscale $YUVARG $PROGARG
192
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \
193
- $OUTDIR/${basename}_${samp}_Q95_full.bmp; do
194
- runme cmp -i 54:54 $i $OUTDIR/${basename}_GRAY_${xform}_jpegtran.bmp
195
- rm $i
196
- done
197
- done
198
- done
199
-
200
- # Transforms with scaling
201
- for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
202
- for samp in GRAY 444 422 420; do
203
- for scale in 2_1 15_8 7_4 13_8 3_2 11_8 5_4 9_8 7_8 3_4 5_8 1_2 3_8 1_4 1_8; do
204
- scalearg=`echo $scale | sed 's/\_/\//g'`
205
- runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG -bmp -outfile $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.bmp $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
206
- runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $PROGARG
207
- runme cmp -i 54:54 $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.bmp
208
- rm $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp
209
- done
210
- done
211
- done
212
-
213
- done
214
-
215
- echo SUCCESS!