1*dfc6aa5cSAndroid Build Coastguard Worker#!/bin/bash 2*dfc6aa5cSAndroid Build Coastguard Worker 3*dfc6aa5cSAndroid Build Coastguard Workerset -u 4*dfc6aa5cSAndroid Build Coastguard Workerset -e 5*dfc6aa5cSAndroid Build Coastguard Workertrap onexit INT 6*dfc6aa5cSAndroid Build Coastguard Workertrap onexit TERM 7*dfc6aa5cSAndroid Build Coastguard Workertrap onexit EXIT 8*dfc6aa5cSAndroid Build Coastguard Worker 9*dfc6aa5cSAndroid Build Coastguard Workeronexit() 10*dfc6aa5cSAndroid Build Coastguard Worker{ 11*dfc6aa5cSAndroid Build Coastguard Worker if [ -d $OUTDIR ]; then 12*dfc6aa5cSAndroid Build Coastguard Worker rm -rf $OUTDIR 13*dfc6aa5cSAndroid Build Coastguard Worker fi 14*dfc6aa5cSAndroid Build Coastguard Worker} 15*dfc6aa5cSAndroid Build Coastguard Worker 16*dfc6aa5cSAndroid Build Coastguard Workerrunme() 17*dfc6aa5cSAndroid Build Coastguard Worker{ 18*dfc6aa5cSAndroid Build Coastguard Worker echo \*\*\* $* 19*dfc6aa5cSAndroid Build Coastguard Worker "$@" 20*dfc6aa5cSAndroid Build Coastguard Worker} 21*dfc6aa5cSAndroid Build Coastguard Worker 22*dfc6aa5cSAndroid Build Coastguard WorkerIMAGES="vgl_5674_0098.bmp vgl_6434_0018a.bmp vgl_6548_0026a.bmp nightshot_iso_100.bmp" 23*dfc6aa5cSAndroid Build Coastguard WorkerIMGDIR=@CMAKE_CURRENT_SOURCE_DIR@/testimages 24*dfc6aa5cSAndroid Build Coastguard WorkerOUTDIR=`mktemp -d /tmp/__tjbenchtest_java_output.XXXXXX` 25*dfc6aa5cSAndroid Build Coastguard WorkerEXEDIR=@CMAKE_CURRENT_BINARY_DIR@ 26*dfc6aa5cSAndroid Build Coastguard WorkerJAVA="@Java_JAVA_EXECUTABLE@" 27*dfc6aa5cSAndroid Build Coastguard WorkerJAVAARGS="-cp $EXEDIR/java/turbojpeg.jar -Djava.library.path=$EXEDIR" 28*dfc6aa5cSAndroid Build Coastguard WorkerBMPARG= 29*dfc6aa5cSAndroid Build Coastguard WorkerNSARG= 30*dfc6aa5cSAndroid Build Coastguard WorkerYUVARG= 31*dfc6aa5cSAndroid Build Coastguard WorkerPROGARG= 32*dfc6aa5cSAndroid Build Coastguard Worker 33*dfc6aa5cSAndroid Build Coastguard Workerif [ -d $OUTDIR ]; then 34*dfc6aa5cSAndroid Build Coastguard Worker rm -rf $OUTDIR 35*dfc6aa5cSAndroid Build Coastguard Workerfi 36*dfc6aa5cSAndroid Build Coastguard Workermkdir -p $OUTDIR 37*dfc6aa5cSAndroid Build Coastguard Worker 38*dfc6aa5cSAndroid Build Coastguard Workerwhile [ $# -gt 0 ]; do 39*dfc6aa5cSAndroid Build Coastguard Worker case "$1" in 40*dfc6aa5cSAndroid Build Coastguard Worker -yuv) 41*dfc6aa5cSAndroid Build Coastguard Worker NSARG=-nosmooth 42*dfc6aa5cSAndroid Build Coastguard Worker YUVARG=-yuv 43*dfc6aa5cSAndroid Build Coastguard Worker 44*dfc6aa5cSAndroid Build Coastguard Worker# NOTE: The combination of tjEncodeYUV*() and tjCompressFromYUV*() does not 45*dfc6aa5cSAndroid Build Coastguard Worker# always produce bitwise-identical results to tjCompress*() if subsampling is 46*dfc6aa5cSAndroid Build Coastguard Worker# enabled. In both cases, if the image width or height are not evenly 47*dfc6aa5cSAndroid Build Coastguard Worker# divisible by the MCU width/height, then the bottom and/or right edge are 48*dfc6aa5cSAndroid Build Coastguard Worker# expanded. However, the libjpeg code performs this expansion prior to 49*dfc6aa5cSAndroid Build Coastguard Worker# downsampling, and TurboJPEG performs it in tjCompressFromYUV*(), which is 50*dfc6aa5cSAndroid Build Coastguard Worker# after downsampling. Thus, the two will agree only if the width/height along 51*dfc6aa5cSAndroid Build Coastguard Worker# each downsampled dimension is an odd number or is evenly divisible by the MCU 52*dfc6aa5cSAndroid Build Coastguard Worker# width/height. This disagreement basically amounts to a round-off error, but 53*dfc6aa5cSAndroid Build Coastguard Worker# there is no easy way around it, so for now, we just test the only image that 54*dfc6aa5cSAndroid Build Coastguard Worker# works. (NOTE: nightshot_iso_100 does not suffer from the above issue, but 55*dfc6aa5cSAndroid Build Coastguard Worker# it suffers from an unrelated problem whereby the combination of 56*dfc6aa5cSAndroid Build Coastguard Worker# tjDecompressToYUV*() and tjDecodeYUV*() do not produce bitwise-identical 57*dfc6aa5cSAndroid Build Coastguard Worker# results to tjDecompress*() if decompression scaling is enabled. This latter 58*dfc6aa5cSAndroid Build Coastguard Worker# phenomenon is not yet fully understood but is also believed to be some sort 59*dfc6aa5cSAndroid Build Coastguard Worker# of round-off error.) 60*dfc6aa5cSAndroid Build Coastguard Worker IMAGES="vgl_6548_0026a.bmp" 61*dfc6aa5cSAndroid Build Coastguard Worker ;; 62*dfc6aa5cSAndroid Build Coastguard Worker -progressive) 63*dfc6aa5cSAndroid Build Coastguard Worker PROGARG=-progressive 64*dfc6aa5cSAndroid Build Coastguard Worker ;; 65*dfc6aa5cSAndroid Build Coastguard Worker esac 66*dfc6aa5cSAndroid Build Coastguard Worker shift 67*dfc6aa5cSAndroid Build Coastguard Workerdone 68*dfc6aa5cSAndroid Build Coastguard Worker 69*dfc6aa5cSAndroid Build Coastguard Workerexec >$EXEDIR/tjbenchtest-java$YUVARG$PROGARG.log 70*dfc6aa5cSAndroid Build Coastguard Worker 71*dfc6aa5cSAndroid Build Coastguard Worker# Standard tests 72*dfc6aa5cSAndroid Build Coastguard Workerfor image in $IMAGES; do 73*dfc6aa5cSAndroid Build Coastguard Worker 74*dfc6aa5cSAndroid Build Coastguard Worker cp $IMGDIR/$image $OUTDIR 75*dfc6aa5cSAndroid Build Coastguard Worker basename=`basename $image .bmp` 76*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -grayscale -outfile $OUTDIR/${basename}_GRAY_fast_cjpeg.jpg $IMGDIR/${basename}.bmp 77*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 2x2 -outfile $OUTDIR/${basename}_420_fast_cjpeg.jpg $IMGDIR/${basename}.bmp 78*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 2x1 -outfile $OUTDIR/${basename}_422_fast_cjpeg.jpg $IMGDIR/${basename}.bmp 79*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct fast $PROGARG -sample 1x1 -outfile $OUTDIR/${basename}_444_fast_cjpeg.jpg $IMGDIR/${basename}.bmp 80*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -grayscale -outfile $OUTDIR/${basename}_GRAY_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp 81*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 2x2 -outfile $OUTDIR/${basename}_420_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp 82*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 2x1 -outfile $OUTDIR/${basename}_422_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp 83*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/cjpeg -quality 95 -dct int $PROGARG -sample 1x1 -outfile $OUTDIR/${basename}_444_accurate_cjpeg.jpg $IMGDIR/${basename}.bmp 84*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 420 422 444; do 85*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_default_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg 86*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -dct fast -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_fast_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg 87*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -dct int -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_accurate_djpeg.bmp $OUTDIR/${basename}_${samp}_accurate_cjpeg.jpg 88*dfc6aa5cSAndroid Build Coastguard Worker done 89*dfc6aa5cSAndroid Build Coastguard Worker for samp in 420 422; do 90*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -nosmooth -bmp -outfile $OUTDIR/${basename}_${samp}_default_nosmooth_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg 91*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -dct fast -nosmooth -bmp -outfile $OUTDIR/${basename}_${samp}_fast_nosmooth_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg 92*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -dct int -nosmooth -bmp -outfile $OUTDIR/${basename}_${samp}_accurate_nosmooth_djpeg.bmp $OUTDIR/${basename}_${samp}_accurate_cjpeg.jpg 93*dfc6aa5cSAndroid Build Coastguard Worker done 94*dfc6aa5cSAndroid Build Coastguard Worker 95*dfc6aa5cSAndroid Build Coastguard Worker # Compression 96*dfc6aa5cSAndroid Build Coastguard Worker for dct in accurate fast; do 97*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/$image 95 -rgb -quiet -benchtime 0.01 -warmup 0 -${dct}dct $YUVARG $PROGARG 98*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 420 422 444; do 99*dfc6aa5cSAndroid Build Coastguard Worker runme cmp $OUTDIR/${basename}_${samp}_Q95.jpg $OUTDIR/${basename}_${samp}_${dct}_cjpeg.jpg 100*dfc6aa5cSAndroid Build Coastguard Worker done 101*dfc6aa5cSAndroid Build Coastguard Worker done 102*dfc6aa5cSAndroid Build Coastguard Worker 103*dfc6aa5cSAndroid Build Coastguard Worker for dct in fast accurate default; do 104*dfc6aa5cSAndroid Build Coastguard Worker dctarg=-${dct}dct 105*dfc6aa5cSAndroid Build Coastguard Worker if [ "${dct}" = "default" ]; then 106*dfc6aa5cSAndroid Build Coastguard Worker dctarg= 107*dfc6aa5cSAndroid Build Coastguard Worker fi 108*dfc6aa5cSAndroid Build Coastguard Worker 109*dfc6aa5cSAndroid Build Coastguard Worker # Tiled compression & decompression 110*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $PROGARG 111*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 444; do 112*dfc6aa5cSAndroid Build Coastguard Worker for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \ 113*dfc6aa5cSAndroid Build Coastguard Worker $OUTDIR/${basename}_${samp}_Q95_full.bmp; do 114*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.bmp 115*dfc6aa5cSAndroid Build Coastguard Worker rm $i 116*dfc6aa5cSAndroid Build Coastguard Worker done 117*dfc6aa5cSAndroid Build Coastguard Worker done 118*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $PROGARG 119*dfc6aa5cSAndroid Build Coastguard Worker for samp in 420 422; do 120*dfc6aa5cSAndroid Build Coastguard Worker for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \ 121*dfc6aa5cSAndroid Build Coastguard Worker $OUTDIR/${basename}_${samp}_Q95_full.bmp; do 122*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.bmp 123*dfc6aa5cSAndroid Build Coastguard Worker rm $i 124*dfc6aa5cSAndroid Build Coastguard Worker done 125*dfc6aa5cSAndroid Build Coastguard Worker done 126*dfc6aa5cSAndroid Build Coastguard Worker 127*dfc6aa5cSAndroid Build Coastguard Worker # Tiled decompression 128*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 444; do 129*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $PROGARG 130*dfc6aa5cSAndroid Build Coastguard Worker for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \ 131*dfc6aa5cSAndroid Build Coastguard Worker $OUTDIR/${basename}_${samp}_Q95_full.bmp; do 132*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.bmp 133*dfc6aa5cSAndroid Build Coastguard Worker rm $i 134*dfc6aa5cSAndroid Build Coastguard Worker done 135*dfc6aa5cSAndroid Build Coastguard Worker done 136*dfc6aa5cSAndroid Build Coastguard Worker for samp in 420 422; do 137*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $PROGARG 138*dfc6aa5cSAndroid Build Coastguard Worker for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \ 139*dfc6aa5cSAndroid Build Coastguard Worker $OUTDIR/${basename}_${samp}_Q95_full.bmp; do 140*dfc6aa5cSAndroid Build Coastguard Worker runme cmp $i -i 54:54 $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.bmp 141*dfc6aa5cSAndroid Build Coastguard Worker rm $i 142*dfc6aa5cSAndroid Build Coastguard Worker done 143*dfc6aa5cSAndroid Build Coastguard Worker done 144*dfc6aa5cSAndroid Build Coastguard Worker done 145*dfc6aa5cSAndroid Build Coastguard Worker 146*dfc6aa5cSAndroid Build Coastguard Worker # Scaled decompression 147*dfc6aa5cSAndroid Build Coastguard Worker 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*dfc6aa5cSAndroid Build Coastguard Worker scalearg=`echo $scale | sed 's/\_/\//g'` 149*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 420 422 444; do 150*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG -bmp -outfile $OUTDIR/${basename}_${samp}_${scale}_djpeg.bmp $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg 151*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $PROGARG 152*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp $OUTDIR/${basename}_${samp}_${scale}_djpeg.bmp 153*dfc6aa5cSAndroid Build Coastguard Worker rm $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp 154*dfc6aa5cSAndroid Build Coastguard Worker done 155*dfc6aa5cSAndroid Build Coastguard Worker done 156*dfc6aa5cSAndroid Build Coastguard Worker 157*dfc6aa5cSAndroid Build Coastguard Worker # Transforms 158*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 420 422 444; do 159*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/jpegtran -flip horizontal -trim -outfile $OUTDIR/${basename}_${samp}_hflip_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg 160*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/jpegtran -flip vertical -trim -outfile $OUTDIR/${basename}_${samp}_vflip_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg 161*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/jpegtran -transpose -trim -outfile $OUTDIR/${basename}_${samp}_transpose_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg 162*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/jpegtran -transverse -trim -outfile $OUTDIR/${basename}_${samp}_transverse_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg 163*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/jpegtran -rotate 90 -trim -outfile $OUTDIR/${basename}_${samp}_rot90_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg 164*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/jpegtran -rotate 180 -trim -outfile $OUTDIR/${basename}_${samp}_rot180_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg 165*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/jpegtran -rotate 270 -trim -outfile $OUTDIR/${basename}_${samp}_rot270_jpegtran.jpg $OUTDIR/${basename}_${samp}_Q95.jpg 166*dfc6aa5cSAndroid Build Coastguard Worker done 167*dfc6aa5cSAndroid Build Coastguard Worker for xform in hflip vflip transpose transverse rot90 rot180 rot270; do 168*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 444; do 169*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg 170*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -tile -quiet -benchtime 0.01 -warmup 0 $YUVARG $PROGARG 171*dfc6aa5cSAndroid Build Coastguard Worker for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \ 172*dfc6aa5cSAndroid Build Coastguard Worker $OUTDIR/${basename}_${samp}_Q95_full.bmp; do 173*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp 174*dfc6aa5cSAndroid Build Coastguard Worker rm $i 175*dfc6aa5cSAndroid Build Coastguard Worker done 176*dfc6aa5cSAndroid Build Coastguard Worker done 177*dfc6aa5cSAndroid Build Coastguard Worker for samp in 420 422; do 178*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -nosmooth -rgb -bmp -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg 179*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample $YUVARG $PROGARG 180*dfc6aa5cSAndroid Build Coastguard Worker for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \ 181*dfc6aa5cSAndroid Build Coastguard Worker $OUTDIR/${basename}_${samp}_Q95_full.bmp; do 182*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.bmp 183*dfc6aa5cSAndroid Build Coastguard Worker rm $i 184*dfc6aa5cSAndroid Build Coastguard Worker done 185*dfc6aa5cSAndroid Build Coastguard Worker done 186*dfc6aa5cSAndroid Build Coastguard Worker done 187*dfc6aa5cSAndroid Build Coastguard Worker 188*dfc6aa5cSAndroid Build Coastguard Worker # Grayscale transform 189*dfc6aa5cSAndroid Build Coastguard Worker for xform in hflip vflip transpose transverse rot90 rot180 rot270; do 190*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 444 422 420; do 191*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -tile -quiet -benchtime 0.01 -warmup 0 -grayscale $YUVARG $PROGARG 192*dfc6aa5cSAndroid Build Coastguard Worker for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].bmp \ 193*dfc6aa5cSAndroid Build Coastguard Worker $OUTDIR/${basename}_${samp}_Q95_full.bmp; do 194*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $i $OUTDIR/${basename}_GRAY_${xform}_jpegtran.bmp 195*dfc6aa5cSAndroid Build Coastguard Worker rm $i 196*dfc6aa5cSAndroid Build Coastguard Worker done 197*dfc6aa5cSAndroid Build Coastguard Worker done 198*dfc6aa5cSAndroid Build Coastguard Worker done 199*dfc6aa5cSAndroid Build Coastguard Worker 200*dfc6aa5cSAndroid Build Coastguard Worker # Transforms with scaling 201*dfc6aa5cSAndroid Build Coastguard Worker for xform in hflip vflip transpose transverse rot90 rot180 rot270; do 202*dfc6aa5cSAndroid Build Coastguard Worker for samp in GRAY 444 422 420; do 203*dfc6aa5cSAndroid Build Coastguard Worker 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*dfc6aa5cSAndroid Build Coastguard Worker scalearg=`echo $scale | sed 's/\_/\//g'` 205*dfc6aa5cSAndroid Build Coastguard Worker runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG -bmp -outfile $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.bmp $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg 206*dfc6aa5cSAndroid Build Coastguard Worker runme "$JAVA" $JAVAARGS TJBench $OUTDIR/${basename}_${samp}_Q95.jpg -$xform -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $PROGARG 207*dfc6aa5cSAndroid Build Coastguard Worker runme cmp -i 54:54 $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.bmp 208*dfc6aa5cSAndroid Build Coastguard Worker rm $OUTDIR/${basename}_${samp}_Q95_${scale}.bmp 209*dfc6aa5cSAndroid Build Coastguard Worker done 210*dfc6aa5cSAndroid Build Coastguard Worker done 211*dfc6aa5cSAndroid Build Coastguard Worker done 212*dfc6aa5cSAndroid Build Coastguard Worker 213*dfc6aa5cSAndroid Build Coastguard Workerdone 214*dfc6aa5cSAndroid Build Coastguard Worker 215*dfc6aa5cSAndroid Build Coastguard Workerecho SUCCESS! 216