Как из dng сделать cube
То есть, чтобы программа их увидела, вы можете взять и положить их в папку [диск]:\Program Files\Adobe\Adobe Premiere Pro CC 2019\Lumetri\LUTs\Technical, но в меню панели Lumetri увидите только те, которые имеют разрешение .cube. Можно нажать Обзор и выбрать на диске, и программа их прекрасно применит, можно сделать пресет и кидать его на сегмент, но можно ведь и в ворота войти, вместо того чтобы влезать в окно. Просто конвертируем нужную таблицу — есть куча сервисов с умеренно платными программами, но можно воспользоваться открытой возможностью в Photoshop:
Digital Negative Image File
Digital Negative format (DNG) - это открытый формат файлов изображений RAW, процветающий в Adobe, который не содержит потерь. Adobe разработала формат файла DNG для выполнения некоторых целей, которые, по их мнению, не могли быть выполнены в формате RAW. Сохранение цифровых изображений, простое и открытое для всех использование разработчиками программного обеспечения, встроенное приложение для производителей камер и совместимость с различными поставщиками.
Файлы расширения DNG создаются в соответствии с классами TIFF/EP. DNG поддерживает несколько форм метаданных. Изображения с исходными данными и без поддерживаются этим форматом, что приводит к «линейному» DNGs. Линейный DNG может управлять такими изменениями, как цветовой профиль, HDR и т. д. создано необработанными конвертерами. Каждый конвертер, поддерживающий формат файлов raw DNG, также поддерживает линейные файлы DNG.
Как мы сделали конвертер и плеер для CinemaDNG на CUDA
На Хабре у меня уже было две статьи (1 и 2), обе они касались реализации быстрого сжатия изображений по алгоритму JPEG на CUDA. Теперь я бы хотел рассказать о другой, гораздо более масштабной задаче — как мы сделали конвертер и видео плеер для серий DNG изображений на CUDA. При этом мы получили очень высокую скорость работы, потому что вся обработка исходных данных в формате DNG теперь выполняется на видеокарте NVIDIA.
Несмотря на то, что в мире уже есть очень большое количество конвертеров RAW, которые работают с форматом DNG, мы решили сделать ещё один, но очень быстрый, который можно было бы использовать в том числе для отбраковки и сортировки. Видео плееры DNG тоже есть, но обычно они работают с уменьшенным разрешением, поэтому просмотреть только что отснятый в формате DNG материал на полном разрешении — это проблема. С помощью нашего конвертера мы сделали попытку обработать картинки настолько быстро, чтобы уметь просматривать серии DNG изображений в реальном времени и при полном разрешении. Естественно, что кроме скорости необходимо было получить приемлемое качество обработки и шумоподавления, и мне кажется, что нам это удалось.
На всякий случай напомню, что DNG — это предложенный компанией Adobe открытый формат RAW данных, снятых на видеокамеру или фотоаппарат. Мы будем рассматривать случай с видео, хотя для фотографий задача почти та же самая.
Условие задачи: на достаточно быстром SSD лежит серия изображений в формате DNG (все кадры сжаты) с разрешением до 4К или 4.6К (например, как у последних моделей видеокамер URSA или URSA mini от компании BlackMagic Design) и нужно в реальном времени их прочитать, декодировать, сделать всю необходимую обработку и плавно вывести видео на монитор с заданной частотой в диапазоне 24-30 кадров в секунду на полном разрешении (без использования proxies, т.е. уменьшенных копий).
Мы довольно давно занимаемся разработкой алгоритмов и программного обеспечения для обработки изображений и видео на CUDA, поэтому в нашем распоряжении был собственный быстрый SDK, в котором мы реализовали весь необходимый функционал для работы с RAW данными от видеокамер. В итоге вся схема обработки изображений в настоящее время выглядит примерно следующим образом:
1. Многопоточное чтение DNG файлов с SSD
2. Парсинг DNG файлов, получение тайлов
3. Многопоточное декодирование DNG изображений
4. Пересылка декодированных изображений в видеокарту
5. Кроп для DNG
6. Линеаризация исходных данных, приведение их к 16 битам
7. Применение уровней белого и чёрного
8. Баланс белого
9. Экспокоррекция
10. Шумодав до дебайера
11. Дебайер (демозаик)
12. Шумодав после дебайера
13. Цветовые преобразования, температура и тинт
14. Кривые и уровни в RGB
15. Кривые и уровни в HSV
16. Кроп и ресайз (для заданного зума)
17. Резкость
18. Наложение профиля монитора и гаммы
19. Преобразование данных к 8 битам на канал
20. Копирование данных из памяти CUDA в текстуру OpenGL с последующим выводом на монитор после получения V-Sync
21. Вычисление и вывод на монитор гистограмм и парадов для каждого кадра
Как видно из описания, внутренний формат представления данных — 16 бит на канал. Это не так плохо, как может показаться на первый взгляд. Все участки кода, где очень важна точность, считаются во float (шумодав, ресайз, шарп), а финальный результат обработки каждой стадии сохраняется в 16 битах. Многие дебайеры представляют из себя целочисленные алгоритмы, поэтому для них 16 бит в самый раз, но некоторые стадии всё равно приходится делать во float. Также иногда мы объединяем соседние стадии обработки, например, баланс белого и экспокоррекцию, что уменьшает количество промежуточных округлений. Мы визуально сравнивали результаты с 32-битной реализацией и существенной разницы не обнаружили. Нам кажется, что это вызвано относительно небольшим количеством промежуточных стадий обработки в нашем софте.
Несколько слов хотелось бы сказать и о дебайерах, т. е. об алгоритмах демозаики. Очень часто в конвертерах для уменьшения времени вычислений используют билинейный алгоритм или его аналоги, ведь это один из самых быстрых вариантов. Действительно, на CPU это так, но если посмотреть на качество восстановленной картинки с точки зрения пикового отношения сигнал-шум (PSNR), то для стандартного набора изображений Кодака, используемого для тестирования дебайеров, у билинейного алгоритма получается менее 31 дБ. Алгоритмы дебайеров HQLI и DFPD из нашей программы дают 36 дБ и 39 дБ на этом же наборе кадров. Поскольку производительность дебайера на GPU во много раз выше, чем на CPU, то нет необходимости в билинейном дебайере и можно использовать более качественные алгоритмы. Когда мы делали кодек JPEG на видеокарте, мы измеряли PSNR в зависимости от коэффициента качества для разных дебайеров и получили интересный результат: низкий PSNR финальной картинки определяется именно билинейным дебайером, а не артефактами джипега при качестве не менее 75%. Резюме простое: если требуется качество, то билинейный дебайер лучше не использовать. Понятно, что метрика PSNR (как SSIM и остальные) достаточно условна, но это объективный критерий, который работает в большинстве случаев, хоть и не всегда.
Мы в ближайшее время должны завершить разработку нового алгоритма дебайера для GPU, который даёт PSNR 40.7 дБ на наборе Кодака. Версия на CPU уже готова и тестовое приложение с командной строкой лежит в открытом доступе. С его помощью можно протестировать все наши алгоритмы дебайеров и сравнить их.
Новый алгоритм дебайера называется MG (multiple gradients), он сделан нами, в других RAW конвертерах его нет.
Реализация такой общей схемы обработки для 10/12/14-битных исходных данных в формате DNG в реальном времени с частотой кадров в диапазоне 24-30 к/с для разрешений от 2К до 4К, требует тщательной оптимизации каждого алгоритма. При этом необходимо добиться максимально возможной скорости работы SSD, CPU и GPU. Если производительность одного из этих трёх компонент железа будет недостаточной, то реального времени не получится. Для разрешений 4К-4.6К мы достигли скорости обработки быстрее реального времени при использовании видеокарт NVIDIA GeForce GTX 980 и 1080.
На хорошем железе наш плеер DNG работает плавно, изображение можно масштабировать на весь экран. Аппаратный ресайз в OpenGL отключен, потому что в нём по умолчанию стоит билинейный алгоритм ресайза, который даёт значительные артефакты, особенно при уменьшении. Для решения этой проблемы мы всегда делаем ресайз на CUDA по алгоритму Ланцоша и передаём в OpenGL уже готовую картинку, размеры которой совпадают с размером окна. При этом мы получаем дополнительную задержку по времени, но качество картинки улучшается.
Изображение в формате DNG взято с этого сайта, оператор Джо Броули, тестовые снимки BlackMagic Ursa Mini 4.6K.
Для сохранения результатов в произвольный контейнер, можно использовать внешний FFmpeg, который пользователь должен установить самостоятельно, и его можно запустить из нашей программы с заданной командной строкой. Таким образом, например, с помощью внешнего FFmpeg можно сжать выходные данные в 10-битный 444 ProRes и сохранить их в контейнер MOV. Без помощи FFmpeg программа сама может сохранять обработанные кадры в виде серии 16-битных изображений в формате TIFF или 8/12-битных JPEG, а цветовой профиль встраивается в заголовок каждого кадра.
Таким же образом можно обрабатывать и фотографии. Но поскольку в фото есть очень много разных закрытых форматов, то для полноценной работы нужно будет подключить libraw, а пока есть только варианты с предварительной конвертацией исходных данных в DNG с помощью Adobe DNG Converter. Наша программа изначально не была ориентирована на фото, поэтому многих важных фич не хватает. В нашем SDK, на базе которого сделан софт, часть нужного функционала уже реализована, так что, возможно, быстрый конвертер для фото мы тоже сделаем. В этом случае пакетная обработка фотографий должна получиться очень быстрой, ведь и в джипег мы сжимаем на видеокарте. На хорошей карточке время обработки одной 50-МПикс картинки получается меньше, чем время загрузки изображения с SSD. Но для работы с такими большими файлами нужен GPU с памятью не менее 8 ГБайт.
Приведенная выше схема обработки изображений не является достаточно полной, так как пока отсутствует модуль подавления хроматических аберраций, ещё нельзя подключить 3D LUT, межкадровый шумодав не готов, монтажный кодек пока внешний, да много чего ещё не хватает. Всё это скоро будет сделано. Однако уже сейчас хорошо видно, что реализация всей схемы обработки серий DNG изображений на CUDA возможна даже на одной видеокарте, причём в реальном времени и при максимальном разрешении.
Мы знаем о существовании Adobe Premiere Pro 2015, BlackMagic DaVinci Resolve 12 и о многих других универсальных профессиональных решениях из этой области, в том числе и на видеокартах. Нашей задачей было не создание конкурента программам для файл-менеджмента, нелинейного монтажа, грейдинга и компрессии с помощью монтажных кодеков — в этих областях существующие решения и так неплохо справляются с имеющимися задачами, хотя и тут есть простор для ускорения и улучшения. Мы сделали решение для очень быстрой и достаточно качественной обработки данных на видеокарте и пользователи могут оценить, что у нас получилось.
Хотел бы отметить важный момент: в нашем подходе речь не идёт об ускорении на GPU отдельных алгоритмов при обработке изображений, как это часто бывает во многих приложениях. В нашей программе вся обработка серий DNG изображений выполняется на видеокарте, а это и есть принципиальное отличие от всех известных нам решений в данной области. С нашей точки зрения это оптимальный подход для повышения скорости работы и интересная возможность для улучшения качества в реалтайм приложениях.
Чтобы пользователь мог получить информацию о времени выполнения каждой стадии общей схемы обработки изображений, мы сделали специальный модуль, который измеряет и показывает время работы на видеокарте каждого алгоритма для данного изображения. Если активировать модуль Benchmarks, на экран будут выведены основные данные об используемой памяти, параметрах изображения и список задействованных алгоритмов обработки вместе с временем их выполнения.
Для решения задачи быстрого предварительного просмотра DNG серий мы сделали отдельный режим работы. Эту фичу очень просили те пользователи, которые занимаются отбраковкой и сортировкой материалов в формате DNG. Теперь можно из Проводника через контекстное меню запустить программу и в плеере просмотреть видео из серии DNG изображений, лежащих в данной папке.
Перспективным вариантом для развития этого направления является создание плагинов к Adobe Premiere Pro и After Effects. В этом случае можно будет совместить нашу скорость и качество обработки с возможностью сохранения результатов с помощью разнообразных монтажных кодеков без использования FFmpeg. Такие плагины можно будет использовать и вместо монтажного кодека, чтобы в реальном времени делать из DNG готовые обработанные кадры с разрешением 16 бит на канал и передавать их напрямую в After Effects, тогда стадия декодирования из ProRes не потребуется.
Мы также работаем над ещё одним интересным аспектом этого проекта — делаем быстрый кодек JPEG2000 на видеокарте, чтобы использовать его в качестве монтажного кодека. Такой кодек сможет работать с 16-битными данными в реальном времени, что обеспечит более высокое качество по сравнению с другими монтажными кодеками. Даже сжатие 10/12-битных данных может быть сделано с лучшим качеством, чем это делается сейчас. Такой кодек JPEG2000 сможет работать в реальном времени и даст более высокое качество по сравнению с широко используемыми ProRes, DNxHD, DNxHR. В настоящее время такой кодек JPEG2000 на CPU уже есть в составе Adobe Premiere Pro, но он очень медленный, поэтому в практическом плане от него пользы мало. Быстрый кодек JPEG2000 всё кардинально изменит и позволит улучшить качество промежуточных материалов для последующего монтажа.
Мы продолжаем работу над улучшением качества обработки изображений, и в ближайшее время ожидается релиз нового дебайера MG, который должен быть не хуже, чем у Adobe Camera Raw (с нашей точки зрения дебайер из ACR очень хорош). А наш дебайер DFPD в текущем релизе явно лучше, чем у Adobe Premiere Pro 2015. В нашей бесплатной версии есть шумодавы до дебайера и после дебайера, но этого нет в бесплатной версии DaVinci Resolve, а у Premiere Pro собственного шумодава в реальном времени нет даже в платной версии. У каждой программы есть свои плюсы и минусы, так что сравнивать можно много и долго, но в итоге всё равно каждый находит для себя инструмент, отвечающий собственным потребностям и задачам.
Бесплатную демо-версию программы для Windows-7/8/10 (64 бит) можно загрузить отсюда, а тестовую серию CinemaDNG изображений можно взять здесь. Также программа может работать с видео от Canon 5D Mark III с альтернативной прошивкой Magic Lantern после конвертации MLV в DNG.
Буду признателен за замечания по качеству и скорости представленного решения. Ещё раз хочу напомнить, что программа работает только с видеокартами NVIDIA, причём для работы с 4К изображениями формата DNG желательно иметь не менее 2 ГБайт памяти на GPU. К сожалению, на видеокартах AMD и Intel программа работать не будет. И если почти вся память видеокарты NVIDIA занята другими приложениями, то тоже увы. Для достижения высокой скорости обработки нужны быстрые SSD, CPU и GPU.
Как сконвертировать в dng
Загрузите файл
Выберите файл, который вы хотите конвертировать с компьютера, Google Диска, Dropbox или перетащите его на страницу.
Выберите «в dng»
Выберите dng или любой другой формат, в который вы хотите конвертировать файл (более 200 поддерживаемых форматов)
Скачайте ваш dng файл
Подождите пока ваш файл сконвертируется и нажмите скачать dng-файл
Бесплатное онлайн преобразование dng
Просто поместите файлы dng на страницу, и вы можете преобразовать его в более чем 250 различных форматов файлов без регистрации, указывая электронную почту или водяной знак.
Мы удаляем загруженные файлы dng мгновенно и преобразованные файлы через 24 часа. Все файлы передаются с использованием продвинутого шифрования SSL.
Вам не нужно устанавливать какое-либо программное обеспечение. Все преобразования dng происходят в облаке, и не используют какие-либо ресурсы вашего компьютера.
Онлайн конвертер DNG
Вы можете перевести картинки и фотографии в формат dng с помощью бесплатного онлайн конвертера.
RAW vs DNG
Как мне показалось из комментариев к этой статье, среди хабрафотографов есть некоторое количество людей, не знавших (или не знающих) про формат DNG. В этом топике я рассмотрю этот формат по отношению к RAW.
Какой из этих форматов лучше использовать? Этот довольно важный вопрос вы, возможно, уже задавали себе. Если вы ничего не слышали про DNG или слышали только мельком, не вдаваясь в подробности – не беда. Именно для этого я и пишу этот пост. Всем заинтересовавшимся – добро пожаловать под кат.
Прежде чем писать дальше, оговорюсь: в данной статье я описываю различия только между DNG и RAW. JPEG не трогаю.
Что такое RAW?
Это формат записи «сырых» файлов, также известный как «цифровой негатив», – представляет из себя почти необработанные данные, поступающие непосредственно с датчика камеры. Это слово употребляется к первичным данным не только в фотоделе, но еще и, например, в музыкальном и видео производстве. Да это и не странно, ибо «raw» в переводе с английского означает «сырой».
Сам RAW не является форматом файла как таковым. Под этим названием собралось больше десятка форматов. Но так как все они работают по одному и тому же принципу, их называют одним общим словом. RAW – проприетарен и привязан к производителю камеры. То есть, у каждого производителя фотоаппаратов с поддержкой RAW свой собственный формат файла, не совместимый с другими.
Преимущества формата RAW
1. Содержит полное превью в формате JPEG, обработанное камерой (используя настройки, выбранные при съемке).
2. В дополнение к основной информации об экспозиции может хранить дополнительные, специфические для камеры данные (например, значение фокуса).
3. Большая свобода при многих вариантах обработки. Резерв нужен лишь небольшому XMP-файлу.
Недостатки формата RAW
1. Не все программы могут открывать RAW-файлы.
2. Форматы RAW полностью поддерживаются только производителями камер (напомню, у каждого свой). Изменять их может только программное обеспечение, поставляемое в комплекте с камерой (например, Canon – Digital Photo Professional, Nikon – Capture NX и др.).
3. Следует из предыдущего пункта. Поскольку RAW-файлы не могут быть изменены сторонним программным обеспечением, все изменения производимые с файлом будут храниться отдельно (XMP-файл).
Нужно отметить, что в последнее время в камерах (особенно высокого класса) все чаще появляется возможность записи в так называемом «сжатом RAW». Такие файлы сохраняют всю прелесть полного RAW, но занимают меньший объем памяти. На данный момент существуют два вида таких файлов. Меньшее сжатие убирает от четверти до трети от полного объема. Вторая версия позволяет «сбросить» до 50-60% объема. Напомню, что все преимущества RAW перед JPEG при этом не страдают.
Что такое DNG?
DNG (Digital Negative Specification) считается одним из подформатов RAW. Это проприетарный формат компании Adobe, который был создан для хранения данных изображения в совместимом формате, в отличие от прочих RAW-файлов. Хотя DNG был изобретен Adobe и поддерживается во всех приложениях компании, есть и другие производители (Pentax (спасибо JStingo), Leica и Hasselblad), которые приняли этот стандарт и используют его в своих камерах, как основной формат файлов RAW.
В настоящее время поддержка этого формата осуществляется на меньшем уровне, чем RAW. Это один из факторов, добавляющих неопределенности, потому как неизвестно что будет с форматом дальше. Лично я уверен в силах Adobe продвинуть его дальше и если и не сделать индустриальным стандартом, то увеличить его популярность.
Каковы преимущества формата DNG?
1. Нет необходимости беспокоиться о «родном» для камеры формате RAW – будучи один раз преобразованным в DNG он будет работать с любым программным обеспечением, читающим DNG.
2. Как правило, занимает меньше места относительно RAW.
3. Изменения, производимые со снимком, будут записаны непосредственно в файл, что избавляет от дополнительных XMP-файлов. Это упрощает управление файлами.
4. Способен хранить полный оригинальный RAW-файл, который при необходимости может быть позже извлечен вручную.
5. Adobe предоставляет множество способов для автоматического преобразования RAW-изображений в формат DNG в таких программах как Lightroom.
Компания продолжает работать над DNG, добавляя все больше возможностей.
Недостатки формата DNG
1. Не все программы могут открывать DNG-файлы, в том числе и те, что работают с другими RAW-форматами (хотя в последнее время эта ситуация исправляется). Сюда же относится и программное обеспечение от производителей камер (например, Nikon Capture NX).
2. Преобразование RAW в DNG занимает дополнительное время.
3. Удаляет некоторые мета-данные (например, активный D-Lighting и Picture Control) из RAW-файлов, что делает невозможным получение этих данных из DNG в будущем.
4. Поскольку все изменения записываются в DNG-файл, вы должны создавать резервную копию всего файла каждый раз при внесении в него изменений.
Какой же формат использовать?
По сути, эти форматы равнозначны. Из обоих можно одинаково вытянуть картинку, экспортировать в нужный формат, хранить обработки в конце концов. Пусть в случае с DNG это чуть более затратно по размеру (хоть сейчас жесткие диски и не стоят копейки, но все равно хранить огромные массы информации очень дешево и просто).
Лично я предпочитаю использовать DNG по следующим трем причинам:
1. Совместимость – не имеет значения какой камерой я пользуюсь сегодня и какой воспользуюсь завтра.
2. Простота – все изменения записываются в один файл.
3. Размер – эти 15-20% дополнительного пространства имеют значение, когда у вас есть десятки тысяч фотографий.
Конечно, для этого нужно немного больше времени, но преимущества DNG для меня перевешивают преимущества RAW. Процесс резервного копирования проходит проще, потому что мне не приходится беспокоиться о выборе сопроводительных файлов (XMP) – я просто копирую фотографии, с которыми работаю.
Что касается того: сохранять или нет оригинальные RAW-файлы, то лично я делаю резервную копию только очень важных для меня снимков. Все остальное хранится в DNG + отдельно обработанные JPG.
Читайте также: