aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2014-08-22 03:04:06 +0000
committerdcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db>2014-08-22 03:04:06 +0000
commitc90bbc43e8a017b14a164b1a8a7116103dfb7884 (patch)
tree9ae11d655b9cc763e78655e0439a7b4112a20c0a
parent82717761548d66e2dac8a9869687cf77ad7f5665 (diff)
Extend tjbenchtest so that it tests the dynamic JPEG buffer allocation feature in TurboJPEG. Disable the tiling feature in TJBench whenever dynamic buffer allocation is enabled (because the tiling feature requires a separate buffer for each tile, using it successfully with dynamic buffer allocation would require a separate TurboJPEG compressor instance for each tile, and it's not worth going to that trouble right now.)
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1374 632fc199-4ca6-4c93-a231-07263d6284db
-rw-r--r--Makefile.am2
-rw-r--r--tjbench.c7
-rwxr-xr-xtjbenchtest.in131
3 files changed, 95 insertions, 45 deletions
diff --git a/Makefile.am b/Makefile.am
index dad69df..e34f13e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -513,7 +513,9 @@ testclean:
tjtest:
sh ./tjbenchtest
+ sh ./tjbenchtest -alloc
sh ./tjbenchtest -yuv
+ sh ./tjbenchtest -yuv -alloc
if WITH_JAVA
sh ./tjbenchtest.java
sh ./tjbenchtest.java -yuv
diff --git a/tjbench.c b/tjbench.c
index 14ccd00..4725416 100644
--- a/tjbench.c
+++ b/tjbench.c
@@ -908,6 +908,13 @@ int main(int argc, char *argv[])
dotile=0;
}
+ if((flags&TJFLAG_NOREALLOC)==0 && dotile)
+ {
+ printf("Disabling tiled compression/decompression tests, because those tests do not\n");
+ printf("work when dynamic JPEG buffer allocation is enabled.\n\n");
+ dotile=0;
+ }
+
if(!decomponly)
{
if(loadbmp(argv[1], &srcbuf, &w, &h, pf, (flags&TJFLAG_BOTTOMUP)!=0)==-1)
diff --git a/tjbenchtest.in b/tjbenchtest.in
index 4c4e040..ef11b24 100755
--- a/tjbenchtest.in
+++ b/tjbenchtest.in
@@ -27,6 +27,8 @@ EXEDIR=.
BMPARG=
NSARG=
YUVARG=
+ALLOC=0
+ALLOCARG=
if [ "$EXT" = "bmp" ]; then BMPARG=-bmp; fi
if [ -d $OUTDIR ]; then
@@ -59,6 +61,10 @@ if [ $# -gt 0 ]; then
# of round-off error.)
IMAGES="vgl_6548_0026a.${EXT}"
fi
+ if [ "$1" = "-alloc" ]; then
+ ALLOCARG=-alloc
+ ALLOC=1
+ fi
fi
# Standard tests
@@ -87,7 +93,7 @@ for image in $IMAGES; do
# Compression
for dct in accurate fast; do
- runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -quiet -benchtime 0.01 -warmup 0 -${dct}dct $YUVARG
+ runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -quiet -benchtime 0.01 -warmup 0 -${dct}dct $YUVARG $ALLOCARG
for samp in GRAY 420 422 444; do
runme cmp $OUTDIR/${basename}_${samp}_Q95.jpg $OUTDIR/${basename}_${samp}_${dct}_cjpeg.jpg
done
@@ -100,39 +106,59 @@ for image in $IMAGES; do
fi
# Tiled compression & decompression
- runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG
+ runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $ALLOCARG
for samp in GRAY 444; do
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
- rm $i
- done
+ if [ $ALLOC = 1 ]; then
+ runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
+ rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
+ else
+ for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
+ $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
+ runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
+ rm $i
+ done
+ fi
done
- runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG
+ runme $EXEDIR/tjbench $OUTDIR/$image 95 -rgb -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $ALLOCARG
for samp in 420 422; do
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
- rm $i
- done
+ if [ $ALLOC = 1 ]; then
+ runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
+ rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
+ else
+ for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
+ $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
+ runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
+ rm $i
+ done
+ fi
done
# Tiled decompression
for samp in GRAY 444; do
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
- rm $i
- done
+ runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -tile -quiet -benchtime 0.01 -warmup 0 ${dctarg} $YUVARG $ALLOCARG
+ if [ $ALLOC = 1 ]; then
+ runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
+ rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
+ else
+ for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
+ $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
+ runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_djpeg.${EXT}
+ rm $i
+ done
+ fi
done
for samp in 420 422; do
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
- runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
- rm $i
- done
+ runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample ${dctarg} $YUVARG $ALLOCARG
+ if [ $ALLOC = 1 ]; then
+ runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
+ rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
+ else
+ for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
+ $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
+ runme cmp $i $OUTDIR/${basename}_${samp}_${dct}_nosmooth_djpeg.${EXT}
+ rm $i
+ done
+ fi
done
done
@@ -141,7 +167,7 @@ for image in $IMAGES; do
scalearg=`echo $scale | sed s@_@/@g`
for samp in GRAY 420 422 444; do
runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG $BMPARG -outfile $OUTDIR/${basename}_${samp}_${scale}_djpeg.${EXT} $OUTDIR/${basename}_${samp}_fast_cjpeg.jpg
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG
+ runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $ALLOCARG
runme cmp $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT} $OUTDIR/${basename}_${samp}_${scale}_djpeg.${EXT}
rm $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT}
done
@@ -160,33 +186,48 @@ for image in $IMAGES; do
for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
for samp in GRAY 444; do
runme $EXEDIR/djpeg -rgb $BMPARG -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 $YUVARG
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
- runme cmp $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
- rm $i
- done
+ runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 $YUVARG $ALLOCARG
+ if [ $ALLOC = 1 ]; then
+ runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
+ rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
+ else
+ for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
+ $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
+ runme cmp $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
+ rm $i
+ done
+ fi
done
for samp in 420 422; do
runme $EXEDIR/djpeg -nosmooth -rgb $BMPARG -outfile $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample $YUVARG
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
- runme cmp $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
- rm $i
- done
+ runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 -fastupsample $YUVARG $ALLOCARG
+ if [ $ALLOC = 1 ]; then
+ runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
+ rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
+ else
+ for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
+ $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
+ runme cmp $i $OUTDIR/${basename}_${samp}_${xform}_jpegtran.${EXT}
+ rm $i
+ done
+ fi
done
done
# Grayscale transform
for xform in hflip vflip transpose transverse rot90 rot180 rot270; do
for samp in GRAY 444 422 420; do
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 -grayscale $YUVARG
- for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
- $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
- runme cmp $i $OUTDIR/${basename}_GRAY_${xform}_jpegtran.${EXT}
- rm $i
- done
+ runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -tile -quiet -benchtime 0.01 -warmup 0 -grayscale $YUVARG $ALLOCARG
+ if [ $ALLOC = 1 ]; then
+ runme cmp $OUTDIR/${basename}_${samp}_Q95_full.${EXT} $OUTDIR/${basename}_GRAY_${xform}_jpegtran.${EXT}
+ rm $OUTDIR/${basename}_${samp}_Q95_full.${EXT}
+ else
+ for i in $OUTDIR/${basename}_${samp}_Q95_[0-9]*[0-9]x[0-9]*[0-9].${EXT} \
+ $OUTDIR/${basename}_${samp}_Q95_full.${EXT}; do
+ runme cmp $i $OUTDIR/${basename}_GRAY_${xform}_jpegtran.${EXT}
+ rm $i
+ done
+ fi
done
done
@@ -196,7 +237,7 @@ for image in $IMAGES; do
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
scalearg=`echo $scale | sed s@_@/@g`
runme $EXEDIR/djpeg -rgb -scale ${scalearg} $NSARG $BMPARG -outfile $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.${EXT} $OUTDIR/${basename}_${samp}_${xform}_jpegtran.jpg
- runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG
+ runme $EXEDIR/tjbench $OUTDIR/${basename}_${samp}_Q95.jpg $BMPARG -$xform -scale ${scalearg} -quiet -benchtime 0.01 -warmup 0 $YUVARG $ALLOCARG
runme cmp $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT} $OUTDIR/${basename}_${samp}_${xform}_${scale}_jpegtran.${EXT}
rm $OUTDIR/${basename}_${samp}_Q95_${scale}.${EXT}
done