Какой просмотрщик фотографий умеет быстро отображать большие фото (40+МП) на 4к мониторе?
Есть Sony A7R2 которая делает 42МП фото и есть 4к телевизор на котором все это смотрится и сортируется.
Раньше (пока была старая 12МП камера) я для просмотра фоток использовал Google Picasa она позволяет быстро пролистывать фотки, но когда переходит к следующей, сначала показывает оооочень убогую превью и через пару секунд уже фото в нормальном разрешении (с 12мп это было порядка 300мс, что вполне адекватно).
Я попробовал Capture One, все достаточно грустро, когда скролишь фотки, задержка 1-2 секунды.
Попробовал еще пару софтин из инета (fastphotoviewer и еще что-то), результат похожий.
Вопрос, есть ли нормальный вьювер, который красиво все кэширует и подгружает фотки заранее?
Проблема не в железе. Фотки храняется на SSD (Samsung Evo 850 512), CPU 2500K, 16Gb RAM.
Я за несколько часов вчера набросал на питоне+опенгл+опенсв скрипт, который загружает фотки в память заранее, делает 4к превьюшку, сливает ее в видеопамять и потом уже скролит прямо на видеокарте. Задержек нет никаких, можно хоть кино смотреть покадрово. Т.е. jpeg декодер использует 1-2 секунды на декодирование (1 поток на cpu) оригинального джипега, но когда все уже в памяти, все происходит мгновенно. Поэтому я и ожидаю, что настоящие вьюверы должны красиво все подгружать заранее чтобы я не замечал этих тормозов.
Вряд ли я узнаю много нового. На линейном чтении он отдает честные 500мб, а 25метровые фотки это чистое линейное чтение.
Да и проблема не в этом. Я понимаю, что загрузка фоток в память требует времени. Я не понимаю почему после этого все происходит не так быстро как можно было бы сделать.
Фотки читаются в среднем на скорости 380МБ/сек, только что проверил. Кусочек питонового скрипта:
last_time = time.time()
with open(foto_path, 'rb') as f:
img_str = f.read()
load_time = time.time() - last_time
print 'load', load_time, (len(img_str) / load_time) / (1024**2)
Все совсем просто. Оно может с диска читать на скорости 20фпс.
Фотки читаются в среднем на скорости 380МБ/сек, только что проверил. Кусочек питонового скрипта:
last_time = time.time()
with open(foto_path, 'rb') as f:
img_str = f.read()
load_time = time.time() - last_time
print 'load', load_time, (len(img_str) / load_time) / (1024**2)
Все совсем просто. Оно может с диска читать на скорости 20фпс.
Скорость особо не меняется на многих десятках фоток.