быстрое изменение размера пакетного изображения [закрыто]

10

смотреть и не могу найти идеальный.
у меня есть 100 гигабайт последовательности изображений 4K для обработки.

нашел imagizer2 на sourceforge. многопоточный, но не 64-битный (имеет значение?).
Я предполагаю, что самым быстрым будет использование библиотеки Intel для IPP-изображений Intel.

Я нахожусь на Windows, но если какой-то сумасшедший вариант быстрого Linux доступен, я буду рассматривать (тесты?).

включены тесты, которые я запускал на тестовой партии из 100 файлов размером 5 КБ (4,3 МБ)

yoshco
источник
Вы упомянули последовательность изображений - хотите ли вы обрабатывать отдельные изображения или объединять их в видеопоследовательности? Если последнее, я бы сделал преобразования во время производства с VirtualDub.
Энди Ли Робинсон
Да, мой первоначальный план состоял в том, чтобы сделать все это в командной строке, используя ffmpeg, ffmpeg -i d:\g\25\g_%%04d.jpg -r 15 -s hd720 -vcodec libx264 -fpre "libx264-hq.ffpreset" -crf 16 Day01_720.mp4 но fmpeg жестко запрограммирован для поддержки изображений размером не более 5012 пикселей. отсюда изменение размера.
Йошко
Я на самом деле предпочитаю Avisynth для работы с последовательностями изображений, это так мощно.
Йошко
Пенни падает! Качество изображения в 4K, а не 4KB! Да, avisynth великолепен и поставляется с виртуальным дабом. ffmpeg является открытым исходным кодом, поэтому ограничение в 5012 пикселей можно изменить и перекомпилировать, или авторы могут увеличить ограничение по умолчанию. Это не должно быть сложно.
Энди Ли Робинсон
добавление дополнительных тестов производительности: VIPS и GraphicsMagick vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use
yoshco

Ответы:

0

Отличная статистика - спасибо за ссылки. Возможно, слишком поздно, но вы не упомянули результаты ImageResizer (из Codeplex), предложенные с Batch Picture Resizer выше. (не то же самое, что упомянутое «дерьмо»). Я начал использовать его после того, как MS перестала обновлять свой Image Resizer. Но, конечно, нет необходимости в скорости и объеме - просто чистые и быстрые изменения размеров для вложений электронной почты и тому подобное.

Дэвид
источник
спасибо, я потерял оригинальный набор данных, но на сопоставимом наборе кажется, что это безумно быстро. Жаль, что его нельзя написать (но исходный код доступен, так что ...)
yoshco
5

Я использую IrfanView для преобразования 1 ГБ файлов формата TIFF в файлы меньшего размера GIF каждую ночь. Занимает всего несколько минут.

Пример команды woulöd выглядит следующим образом (я использую это для преобразования изображений для отображения моих цифровых фотографий)

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

Это изменяет размер всех файлов JPG с C: \ Picutres \ Best \ до 720x540 и сохраняет их как C: \ Temp \ miniDisp \ OrgFilename _rsz.jpg.

Коммутаторы командной строки, которые понимает IrfanView, можно найти в интерактивной справке (см. Индекс - Параметры командной строки) или онлайн здесь.

Tex Hex
источник
irfan также является моим повседневным инструментом, но irfan = 80сек для того же теста.
Йошко
Ну, это действительно долго по сравнению с другими программами. Спасибо за тесты.
Tex Hex
irfanview также мой просмотрщик и пакетный процессор, хотя virtualdub также является важным инструментом. Его можно использовать для объединения последовательностей изображений в видео с преимуществом дельта-сжатия, а изображение можно получить путем индексации кадра.
Энди Ли Робинсон
5

Не уверен, как он будет сравниваться в бенчмарке, но вы можете попробовать ImageMagick, используя инструменты "convert" или "mogrify". Похоже, что он хорошо использует 64-битные, количество ядер и тому подобное.
Все, что я знаю, это то, что он действительно мощный и полнофункциональный. Я могу изменить размер на месте или добавить параметры, такие как фильтры выборки и преобразования типов файлов.

mogrify -format jpg -filter Cubic -resize 20%x20% rgb-?.png
Деннис
источник
я люблю cmd, но я также тестовый джанкер ... mageMagick-6.7.1-Q16x64 = 149сек
yoshco
Думаю, я не удивлен, так как кажется, что ImageMagick - больше швейцарский армейский нож, чем скальпель. Молодцы по вопросу и ориентирам.
Деннис
4

Проверьте эти программы:

  1. Batch Picture Resizer .
  2. Image Resizer .

Изменение размера изображений с помощью пакетных файлов: Batch Resize .

TookTheRook
источник
2
я сделал 100 снимков по 5 тыс.: изменение размера изображения в пакете = 30 секунд imagizer2 = 64 секунды
yoshco
Попробуйте это: Fast Image Resizer ( adionsoft.net/fastimageresize ). Это также кажется многообещающим: Очевидные
TookTheRook
1
Быстрый
размер
light-image-resizer
дерьмо
Ложная реклама тогда. Попробуйте пакетный метод, который я вставил в отредактированный комментарий. Если это не поможет, то у меня нет выбора. В противном случае, если для изменения размера пакета изображений потребовалось 30 секунд, чтобы изменить размер слова изображений размером 500 МБ (при условии, что каждое из 100 изображений было 5 МБ), потребуется 1 час 40 минут для изменения размера всех 100 ГБ изображений, которые вы иметь. Это не так уж плохо?
TookTheRook
1

Параллель можно использовать для ускорения пакетного преобразования с помощью imagemagick.

Сократите каждый * .jpg в каталоге так, чтобы ни высота, ни ширина не превышали 1080 пикселей:

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

Использование convert для создания отдельных файлов меньшего размера:

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

Обратите внимание, что это относится к параллельной GNU, а не к версии, упакованной в moreutils Debian, которая имеет другой синтаксис и меньше функций. См. Справочную страницу для получения дополнительной информации о параллели.

evilsoup
источник
0

Випс быстрее, для меня:

$ 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

Скорость ограничена кодированием / декодированием jpeg, которое (благодаря libjpeg) является однопоточным. Вы можете сделать это немного быстрее, если запустите несколько vipsthumbnail параллельно:

$ 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

Это на 2012 IMAC, но есть и двоичные файлы Windows.

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

jcupitt
источник