12

looking and cant find the perfect one.
i have 100 gig of 4K image-sequence to process.

found imagizer2 on sourceforge. multi-thread but not 64bit (does matter?).
i guess the fastest one will be using intel's IPP image core lib .

i am on windows, but if some crazy fast linux option is available i'll consider (benchmarks?).

included benchmarks i ran on a test batch of 100 5k (4.3MB) files

8
  • You mentioned image sequence - do you want to process individual images, or combine them into video sequences? If the latter, I would do the transformations during production with virtualdub. Jul 27, 2011 at 20:55
  • yes, my orginal plan was to do this all in command line using ffmpeg ffmpeg -i d:\g\25\g_%%04d.jpg -r 15 -s hd720 -vcodec libx264 -fpre "libx264-hq.ffpreset" -crf 16 Day01_720.mp4 but fmpeg is hard coded to support images no larger then 5012pixels. hence the resize.
    – yoshco
    Jul 27, 2011 at 21:56
  • i actually prefer avisynth for image sequence work, its so powerful.
    – yoshco
    Jul 27, 2011 at 21:57
  • Penny drops! 4K line film quality images, not 4kb images! Yes, avisynth is great and supplied with virtual dub. ffmpeg is open source, so the 5012 pixel limit can be modified and recompiled, or the authors could increase the default limit. It shouldn't be difficult. Jul 28, 2011 at 21:26
  • adding more benchmakrs: VIPS and GraphicsMagick vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use
    – yoshco
    Mar 14, 2012 at 17:03

6 Answers 6

0

Great stats - thanks for the references. Perhaps too late but you didn't mention ImageResizer results (from Codeplex) suggested with Batch Picture Resizer above. (not the same as the mentioned "crapware") I started using it after MS stopped updating their Image Resizer. But certainly don't have have the speed and volume needs - just clean and quick resizes for email attachments and such.

1
  • thanks, i lost the original dataset but on comparable set seems this is crazy fast. too bad its not scriptable (but sourcecode is available, so...)
    – yoshco
    Apr 20, 2013 at 17:38
6

I'm using IrfanView for converting 1 GB of tiff files to smaller GIF ones each night. Takes only some minutes.

A sample command woulöd look like this (I use this to convert pictures for my digital photo display)

"C:\Program Files (x86)\IrfanView\i_view32.exe" "C:\Pictures\Best\*.jpg" /resample=(720,540) /aspectratio /convert="C:\Temp\miniDisp\*_rsz.jpg"

This does resize all JPG files from C:\Picutres\Best\ to 720x540 and save them as C:\Temp\miniDisp\ OrgFilename_rsz.jpg.

The command line switches IrfanView understands can be found inside the online help (see Index - Command line options) or online here

3
  • irfan is also my day to day tool, but irfan = 80sec for same test.
    – yoshco
    Jul 27, 2011 at 19:22
  • Well, that's really long compared with the other programs. Thanks for the tests.
    – Tex Hex
    Jul 27, 2011 at 19:34
  • irfanview also my viewer and batch processor of choice though virtualdub is also an essential tool. It could be used to combine image sequences into a video with the benefit of delta compression, and an image could be retrieved by indexing a frame. Jul 27, 2011 at 20:51
6

Not sure how it will compare in the benchmark dept but you may want to give ImageMagick a try using the "convert" or "mogrify" tools. It sounds like it makes good use of 64 bit, number of cores and such.
All I know is that it is really powerful and feature full. I can resize in place or add options like resample filters and file type conversions.

mogrify -format jpg -filter Cubic -resize 20%x20% rgb-?.png
2
  • i love cmd, but im also benchmark junky... mageMagick-6.7.1-Q16x64 = 149sec
    – yoshco
    Jul 27, 2011 at 20:07
  • I guess I'm not surprised as it seems ImageMagick is more the Swiss army knife than the scalpel. Well done on the question and benchmarks.
    – Dennis
    Jul 27, 2011 at 21:05
4

Check out these programs:

  1. Batch Picture Resizer.
  2. Image Resizer.

Resizing images using batch files: Batch Resize.

5
  • 2
    i took 100 5k pictures: batch picture resizer = 30sec imagizer2 = 64sec
    – yoshco
    Jul 27, 2011 at 19:10
  • Try this one: Fast Image Resizer (adionsoft.net/fastimageresize). This one also seems promising: obviousidea.com/windows-software/light-image-resizer Jul 27, 2011 at 19:14
  • 1
    Fast image sizer= 110 sec
    – yoshco
    Jul 27, 2011 at 19:18
  • light-image-resizer is crapware
    – yoshco
    Jul 27, 2011 at 19:25
  • False advertising then. Try the batch method I put in the edited comment. If that doesn't help then I'm out of options. Otherwise, if the batch picture resizer took 30 sec, to resize 500 MB word of images (assuming each of the 100 images was 5 Mb. ea), it should take 1 hour, 40 minutes to resize all of the 100 GB of pics you have. That's not too bad? Jul 27, 2011 at 19:25
1

Parallel can be used to speed up batch conversions with imagemagick.

Shrink every *.jpg in a directory such that neither the height nor width is bigger than 1080 pixels:

parallel mogrify "{}" -resize 1080x1080 ::: *.jpg

Using convert to create seperate smaller files:

parallel convert "{}" -resize 1080x1080 "{.}-small.jpg" ::: *.jpg

Note that this applies to GNU parallel, not the version packaged in Debian's moreutils, which has a different syntax & less features. See the man page for more information on parallel.

0

vips is faster, for me:

$ header sample.jpg 
sample.jpg: 8888x5000 uchar, 3 bands, srgb, jpegload
$ for i in {1..100}; do cp sample.jpg t$i.jpg; done
$ time vipsthumbnail --size 1280 t*
real  0m14.672s
user  0m17.631s
sys   0m0.988s

Speed is limited by jpeg encode/decode, which (thanks to libjpeg) is single-threaded. You can get it going quite a bit quicker if you run several vipsthumbnail in parallel:

$ mkdir a b c d e
$ for j in a b c d e; do for i in {1..20}; do cp sample.jpg $j/t$i.jpg; done; done
$ time (for i in a b c d e; do vipsthumbnail --size 1280 $i/t* & done; wait)
real  0m5.258s
user  0m18.557s
sys   0m0.891s

This is on a 2012 imac, but there are windows binaries too.

http://www.vips.ecs.soton.ac.uk/supported/current/

Not the answer you're looking for? Browse other questions tagged .