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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +32 -0
- data/README.md +29 -5
- data/ext/image_pack/extconf.rb +2 -2
- data/ext/image_pack/image_pack.c +742 -263
- data/ext/image_pack/mozjpeg_sources.rb +5 -0
- data/ext/image_pack/vendor/mozjpeg/transupp.c +2373 -0
- data/lib/image_pack/version.rb +1 -1
- data/lib/image_pack.rb +121 -7
- metadata +6 -104
- data/ext/image_pack/vendor/mozjpeg/croptest.in +0 -95
- data/ext/image_pack/vendor/mozjpeg/libjpeg.map.in +0 -11
- data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd_neon.S +0 -1200
- data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jsimd_neon.S +0 -2254
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-avx2.asm +0 -578
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-mmx.asm +0 -476
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolext-sse2.asm +0 -503
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-avx2.asm +0 -121
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-mmx.asm +0 -121
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jccolor-sse2.asm +0 -120
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-avx2.asm +0 -113
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-mmx.asm +0 -113
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgray-sse2.asm +0 -112
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-avx2.asm +0 -457
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-mmx.asm +0 -355
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcgryext-sse2.asm +0 -382
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jchuff-sse2.asm +0 -761
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcphuff-sse2.asm +0 -662
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-avx2.asm +0 -388
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-mmx.asm +0 -324
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jcsample-sse2.asm +0 -351
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-avx2.asm +0 -515
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-mmx.asm +0 -404
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolext-sse2.asm +0 -458
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-avx2.asm +0 -118
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-mmx.asm +0 -117
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdcolor-sse2.asm +0 -117
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-avx2.asm +0 -136
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-mmx.asm +0 -123
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmerge-sse2.asm +0 -135
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-avx2.asm +0 -575
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-mmx.asm +0 -460
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdmrgext-sse2.asm +0 -517
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-avx2.asm +0 -760
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-mmx.asm +0 -731
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jdsample-sse2.asm +0 -724
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctflt-3dn.asm +0 -318
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctflt-sse.asm +0 -369
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctfst-mmx.asm +0 -395
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctfst-sse2.asm +0 -403
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-avx2.asm +0 -331
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-mmx.asm +0 -620
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jfdctint-sse2.asm +0 -633
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-3dn.asm +0 -451
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-sse.asm +0 -571
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctflt-sse2.asm +0 -497
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctfst-mmx.asm +0 -499
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctfst-sse2.asm +0 -501
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-avx2.asm +0 -453
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-mmx.asm +0 -851
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctint-sse2.asm +0 -858
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctred-mmx.asm +0 -704
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jidctred-sse2.asm +0 -592
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-3dn.asm +0 -230
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-mmx.asm +0 -276
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jquant-sse.asm +0 -208
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jquantf-sse2.asm +0 -168
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-avx2.asm +0 -188
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-sse2.asm +0 -201
- data/ext/image_pack/vendor/mozjpeg/simd/i386/jsimdcpu.asm +0 -135
- data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2.S +0 -4543
- data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2_asm.h +0 -292
- data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample.h +0 -28
- data/ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd_mmi.h +0 -69
- data/ext/image_pack/vendor/mozjpeg/simd/mips64/loongson-mmintrin.h +0 -1334
- data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample.h +0 -28
- data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd_altivec.h +0 -98
- data/ext/image_pack/vendor/mozjpeg/tjbenchtest.in +0 -256
- data/ext/image_pack/vendor/mozjpeg/tjbenchtest.java.in +0 -215
- data/ext/image_pack/vendor/mozjpeg/tjexampletest.in +0 -149
- 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!
|