justandrei: (Default)
[personal profile] justandrei
Сегодня написал одну очень полезную программу. Она значительно ускоряет DPP, когда тот конвертирует файлы CR2 в JPG.

CR2 - это RAW формат фотоснимков, сделанных камерами Canon.
DPP - это Canon Digital Photo Professional, программа для технической коррекции RAW-файлов. Там можно поправить то-сё, а потом конвертировать набор файлов в JPG (batch process).


Проблема в том, что DPP хоть и поддерживает многопоточность, загружая все ядра, но делает это не очень правильно: файлы всё равно открываются последовательно, и только какие-то операции в пределах каждого файла делаются параллельно. В результате в таскмане видна "пила":

прочитал файл, приготовился, поработал, сохранил файл

Процессор явно много отдыхает между пиками.

В общем, задался я целью "истинно" омногозадачить 4 ядра нашего нового i7.

Исследование показало, что схема работы DPP такая:
DPPViewer.exe (UI приложения) по команде batch process создает в заданном выходном каталоге скрипт со случайным именем и неслучайным расширением .vbf, затем вызывает DPPBatch.exe, передавая ему путь к скрипту.
Скрипт - бинарный файл с общими настройками обработки, списком файлов CR2 и специфическими настройками для каждого файла.
DPPBatch.exe, руководствуясь этим скриптом, раз за разом вызывает DPPWorker.exe для каждого файла.
Наконец, DPPWorker.exe превращает заданный CR2 в JPG.

Моё вмешательство в схему работы было задумано так: перехватить вызов DPPBatch.exe (заменить своей программой), прочитать скрипт, спросить у юзера нужное число потоков, разбить скрипт соответственно на части и для каждой части запустить оригинальный DPPBatch.exe.

Задумка прекрасно удалась в течение этой субботы, после того, как я нашел результат труда одного замечательного человека, который уже проанализировал формат файла .vbf и выложил его в открытый доступ.

В результате выполненной работы скорость конвертации поднимается на 30-50%.
Думаю, может, приукрасить программу, прикрутить инсталлятор и продавать? :-)
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

justandrei: (Default)
justandrei

December 2014

S M T W T F S
 123456
7891011 1213
14151617181920
21222324252627
28293031   

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2025 02:06 pm
Powered by Dreamwidth Studios