szybki wsadowy resizer obrazu [zamknięty]

10

patrząc i nie mogę znaleźć idealnego.
Mam do przetworzenia 100 gig sekwencji obrazów 4K.

znaleziono imagizer2 na sourceforge. wielowątkowy, ale nie 64-bitowy (czy to ważne?).
Myślę, że najszybszy będzie wykorzystywał bibliotekę obrazów IPP firmy Intel.

Jestem na Windowsie, ale jeśli dostępna jest jakaś szalona opcja szybkiego linuksa, rozważę (testy porównawcze?).

zawierałem testy porównawcze, które uruchomiłem na partii testowej 100 5k (4,3 MB) plików

Yoshco
źródło
Wspomniałeś o sekwencji obrazów - czy chcesz przetwarzać pojedyncze obrazy, czy połączyć je w sekwencje wideo? Jeśli to drugie, zrobiłbym transformacje podczas produkcji z virtualdub.
Andy Lee Robinson
tak, moim pierwotnym planem było zrobienie tego wszystkiego w wierszu poleceń przy użyciu ffmpeg, ffmpeg -i d:\g\25\g_%%04d.jpg -r 15 -s hd720 -vcodec libx264 -fpre "libx264-hq.ffpreset" -crf 16 Day01_720.mp4 ale fmpeg jest na stałe zakodowany do obsługi obrazów nie większych niż 5012 pikseli. stąd zmiana rozmiaru.
yoshco
tak naprawdę wolę avisynth do pracy nad sekwencją obrazów, ponieważ jest tak potężny.
yoshco
Penny spada! Obrazy w jakości filmu linii 4K, a nie obrazy 4 KB! Tak, avisynth jest świetny i dostarczany z wirtualnym dubem. ffmpeg jest oprogramowaniem typu open source, więc limit 5012 pikseli można zmodyfikować i ponownie skompilować, lub autorzy mogą zwiększyć domyślny limit. To nie powinno być trudne.
Andy Lee Robinson
dodając więcej benchmakrów: VIPS i GraphicsMagick vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use
yoshco

Odpowiedzi:

0

Świetne statystyki - dzięki za referencje. Być może za późno, ale nie wspomniałeś o wynikach ImageResizer (z Codeplex) sugerowanych przy pomocy Batch Picture Resizer powyżej. (nie to samo co wspomniane „crapware”) Zacząłem go używać po tym, jak MS przestało aktualizować Image Resizer. Ale na pewno nie ma potrzeby szybkości i objętości - wystarczy czyste i szybkie zmiany rozmiaru załączników e-mail i tym podobne.

David
źródło
dzięki, zgubiłem oryginalny zestaw danych, ale na porównywalnym zestawie wydaje się, że to szalone szybko. szkoda jej nie skrypty (ale kod źródłowy jest dostępny, więc ...)
yoshco
5

Używam IrfanView do konwertowania 1 GB plików tiff na mniejsze pliki GIF każdej nocy. Zajmuje tylko kilka minut.

Przykładowa komenda woulöd wygląda następująco (używam tego do konwersji zdjęć do mojego cyfrowego wyświetlania zdjęć)

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

Spowoduje to zmianę rozmiaru wszystkich plików JPG z C: \ Picutres \ Best \ na 720x540 i zapisanie ich jako C: \ Temp \ miniDisp \ OrgFilename _rsz.jpg.

Przełączniki wiersza poleceń, które rozumie IrfanView, można znaleźć w pomocy online (patrz Indeks - Opcje wiersza poleceń) lub online tutaj

Tex Hex
źródło
irfan jest również moim codziennym narzędziem, ale irfan = 80 sekund dla tego samego testu.
yoshco
To naprawdę długo w porównaniu z innymi programami. Dzięki za testy.
Tex Hex
irfanview również moją przeglądarkę i procesor wsadowy z wyboru, chociaż virtualdub jest również niezbędnym narzędziem. Można go użyć do łączenia sekwencji obrazów w wideo z korzyścią kompresji delta, a obraz można odzyskać poprzez indeksowanie ramki.
Andy Lee Robinson
5

Nie jestem pewien, jak to się porówna w analizie porównawczej, ale możesz wypróbować ImageMagick za pomocą narzędzi do konwersji lub konwersji. Wygląda na to, że dobrze wykorzystuje 64 bity, liczbę rdzeni i tym podobne.
Wiem tylko, że jest naprawdę potężny i pełen funkcji. Mogę zmienić rozmiar w miejscu lub dodać opcje, takie jak filtry próbkowania i konwersje typów plików.

mogrify -format jpg -filter Cubic -resize 20%x20% rgb-?.png
Dennis
źródło
Uwielbiam cmd, ale jestem też testowym śmieciowcem ... MagMagick-6.7.1-Q16x64 = 149 sekund
yoshco
Nie jestem zaskoczony, ponieważ wydaje się, że ImageMagick to bardziej szwajcarski scyzoryk niż skalpel. Dobra robota w kwestii pytania i testów porównawczych.
Dennis
4

Sprawdź te programy:

  1. Batch Picture Resizer .
  2. Image Resizer .

Zmiana rozmiaru zdjęć przy użyciu plików wsadowych : Batch Resize .

TookTheRook
źródło
2
Zrobiłem 100 5 tys. zdjęć: zmiana obrazu partii = 30 sekund imagizer2 = 64 sekund
yoshco
Spróbuj tego: Fast Image Resizer ( adionsoft.net/fastimageresize ). Ten wydaje się również obiecujący: oczywistidea.com/windows-software/light-image-resizer
TookTheRook
1
Szybki rozmiar obrazu = 110 sekund
yoshco
light-image-resizer to crapware
yoshco
Fałszywa reklama. Wypróbuj metodę wsadową, którą wstawiłem do edytowanego komentarza. Jeśli to nie pomoże, nie mam opcji. W przeciwnym razie, jeśli zmiana rozmiaru obrazu wsadowego zajęła 30 sekund, zmiana rozmiaru 500 MB słów obrazów (przy założeniu, że każdy ze 100 obrazów miał rozmiar 5 Mb. Ea), zmiana rozmiaru wszystkich 100 GB zdjęć powinna zająć 1 godzinę i 40 minut mieć. Nie aż tak źle?
TookTheRook
1

Równoległe można użyć do przyspieszenia konwersji wsadowych za pomocą imagemagick.

Zmniejsz każdy * .jpg w katalogu, aby ani wysokość, ani szerokość nie były większe niż 1080 pikseli:

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

Używanie konwersji do tworzenia osobnych mniejszych plików:

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

Zauważ, że dotyczy to GNU równoległego, a nie wersji spakowanej w moreutils Debiana, która ma inną składnię i mniej funkcji. Zobacz stronę podręcznika, aby uzyskać więcej informacji na temat równoległości.

zła
źródło
0

vips jest szybszy dla mnie:

$ 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

Prędkość jest ograniczona przez kodowanie / dekodowanie jpeg, które (dzięki libjpeg) jest jednowątkowe. Możesz go uruchomić znacznie szybciej, jeśli uruchomisz kilka vipsthumbnail równolegle:

$ 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

To jest na imac 2012, ale są też binaria systemu Windows.

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

jcupitt
źródło