Очерк о Калибрилле. Часть 3
Начало очерка о Калибрилле читайте в первой и второй частях.Версия 4.0
Ещё во время прежних консультаций с моим соавтором-консультантом Алексеем насчёт предыдущей версии программы, он не раз упоминал про то, что было бы очень здорово для отображения тестовых изображений с учётом профилей, реализовать в Калибрилле их поддержку, и даже дал ссылку на библиотеку Little CMS, которая могла бы в этом помочь. Ещё весной 2017 года я попробовал прикрутить библиотеку к программе, и это мне удалось.
Тем не менее, доводка новых функций программы до ума заняла много времени и сил. Наконец, летом 2017 года, вышла новая, четвёртая версия программы Калибрилла с поддержкой цветовых профилей! В программе появился модуль настроек системы управления цветовоспроизведением (CMM, Colr Management Module), в котором можно было задать до двух последовательных трансформаций над внешним изображением.
Возможность использовать профили для отображения тестовых изображений позволило делать в программе не только первичную калибровку на целевую гамму, как раньше, но также и постлинеаризацию.
Помимо нового модуля управления цветом в пакет программы была добавлена пипетка (ColorLUTPix.exe), которая могла показывать значения цвета пикселей не только битмэпа (битовой карты) экрана, но также и значения того же пикселя в LUT, то есть, показывать именно то значение цвета, которое реально видит пользователь на экране.
Также было расширено количество горячих клавиш для открытия внешних тестовых изображений, скорректированы многие внешние шкалы, добавлены новые. Появилось больше настроек для инструментального окна, состояние флажков в них стало запоминаться для каждого монитора отдельно. Было произведено множество более мелких доработок и исправлены все найденные к этому времени ошибки.
Версия 4.0.1
Спустя несколько дней после выхода версии 4.0 в ней обнаружилась серъёзная ошибка, после чего была выпущена исправленная версия этой программы.
Версия 4.1
Эта версия, выпущенная 12 апреля 2018 года, исправляет некоторые ошибки, которые обнаружились в программе за последние полгода, прошедшие с момента выпуска предыдущей версии, а также немного поправляет функционал пипетки.
Версия 4.2
В этой версии, выпущенной спустя полгода, 01 октября 2018 года, появился новый инструмент сглаживания кривых методами интерполяции и аппроксимации. Также осуществлено несколько более мелких доработок, делающих работу с программой удобнее.
Версия 5.0
Осенью 2018 года, сразу после выпуска версии 4.2, я начал работы по автоматизации внедрения результатов LUT в профиль монитора. Взяв за основу методику своего соавтора Алексея, описанного им в документации к нашей программе, а также в его блоге, я попытался это реализовать, но результат такого внедрения оказался неправильным.
В результате обсуждения данной проблемы выяснилось, что не всё так просто. Соответствующие теги профиля (rTRC, gTRC, bTRC и kTRC), содержащие гамма-кривые, надо было каким-то образом нелинейно (как минимум, пропорционально уровню гаммы каждой точки) складывать с данными LUT, но правильной формулы для этого мы так и не нашли.
В результате программа просто получила возможность помещать данные LUT в профиль в тег vcgt, который не является официальным, но используется некоторыми программами. По мере бета-тестирования программы Алексеем выяснилось, что стабильно работающая у меня на компьютере Калибрилла часто вылетает с ошибками доступа к памяти на его компьютерах. На это были жалобы и в прошлом, но точной причины ошибки я тогда не нашёл.
Мне это всё надоело, и я внедрил в свой проект механизм диагностики исключений JCL, который при возникновении ошибки выдаёт не только её тип и приблизительное описание, но и весь стек вызовов, приведшей к ней. Одновременно удалось устранить несколько потенциально опасных мест в коде. В результате программу удалось выдернуть из пропасти глюков и стабилизировать. По мере решения вышеописанных проблем было произведено ещё много доработок и улучшений. Так, например, инструмент внедрения LUT в профиль превратился фактически в редактор профилей с возможностью импортировать теги из других профилей, удалять их, менять местами и т.п.
Появилась возможность на лету менять системный профиль монитора. Обновилась пипетка. В итоге было произведено более 30 изменений. Обновилась и документация. Работы продолжались более четырёх месяцев и, наконец, пятая версия Калибриллы увидела свет!
Версия 5.1
В январе 2021 года произошло очередное, довольно крупное обновление программы. Из основных доработок — это появление карты внешних тестовых таблиц с увеличением их количества с 48 до 96 и добавление возможности редактирования тегов профиля форматов mAB и mBA и ещё нескольких менее сложных форматов.
Также программа получила возможность сохранять из тегов профиля в текстовый файл и считывать оттуда данные кривых, нормализованные к диапазону 0-100.
Также моим соавтором и бета-тестером Алексеем были переработвны внешние тесты. Теперь все внешние тесты поставляются вместе с программой без необходимости докачивать некоторые из них отдельным архивом.
Версия 5.2
Меньше, чем через месяц, в конце января, вышло очередное обновление Калибриллы. Оно было связано с доработкой окон просмотра тегов профилей в направлении возможности редактировать параметрические данные. В процессе доработки всплыло много ошибок прежней версии, связанных с интерпретацией некоторых параметрических данных, а также табличных данных однобайтовой точности. Также попутно было неожиданно выявлено и исправлено несколько ещё более ранних ошибок в других частях программы.
В процессе эксплуатации программы в реальных условиях также выяснилось, что дополнительный функционал программы, а именно просмотр и редактирования тегов, вызывает затруднения и путаницу у пользователей из-за особенностей его встраивания в уже имеющийся интерфейс. Поэтому в версии 5.2 открытие профилей для просмотра и редактирования было упрощено, и стало более естественным.
Вот, пожалуй, и вся история на сегодняшний день.
Начало очерка о Калибрилле читайте в первой и второй частях.