1) Получается некая путаница с ΔE₇₆ и евклидовым расстоянием, то, что формулы идентичны - верно подмечено, но не объясняет главное: формула одинаковая, но применяется к разным пространствам (RGB vs CIELAB). Именно преобразование в CIELAB даёт перцептуальную равномерность, а не сама евклидова формула.
2) Некорректное утверждение о ΔE₉₄, в статье утверждается, что ΔE₉₄ считает чёрный и зелёный "абсолютно одинаковыми" - это технически неверно. ΔE₉₄ даст высокое значение для этой пары. Проблема ΔE₉₄ в другом: неравномерность в нейтральных оттенках и синей зоне.
3) Отсутствие упоминания white point - при конвертации RGB -> CIELAB критически важен выбор белой точки (D50, D65). Разные симуляторы/устройства могут использовать разные профили, что само по себе создаёт расхождения. Об этом ни слова.
4) Атомарный счётчик на GPU - потенциальное узкое место. atomic_fetch_add_explicit при большом количестве несовпадений создаёт некий contention. Для наивной стратегии с градиентами (454k несовпадений) это может деградировать производительность. Стоило упомянуть, почему это не проблема или как решается.
5) Кластерный анализ на GPU - алгоритм не раскрыт. Самая интересная часть - кластерная фильтрация - описана только концептуально. Как именно определяются "соседние" пиксели? Connected components на GPU - нетривиальная задача. Используется ли union-поиск? Какой радиус соседства?
6) Непонятно, что именно вызывает выбросы: CPU, iOS или Xcode?
7) Утверждение "230% прирост производительности" вызывает вопросы. Сравнивается своя Metal-реализация ΔE₂₀₀₀ с CILabDeltaE, который реализует ΔE₉₄ - это разные алгоритмы с разной вычислительной сложностью. Корректнее было бы сравнивать либо ΔE₂₀₀₀ на Metal vs ΔE₂₀₀₀ на CPU, либо показать полный пайплайн (включая накладные расходы CoreImage). Также напрягает отсутствие бенчмарков, методологии измерения и информации о размерах тестовых изображений.
Прикольная статья, но остались некоторые вопросы.
1) Получается некая путаница с ΔE₇₆ и евклидовым расстоянием, то, что формулы идентичны - верно подмечено, но не объясняет главное: формула одинаковая, но применяется к разным пространствам (RGB vs CIELAB). Именно преобразование в CIELAB даёт перцептуальную равномерность, а не сама евклидова формула.
2) Некорректное утверждение о ΔE₉₄, в статье утверждается, что ΔE₉₄ считает чёрный и зелёный "абсолютно одинаковыми" - это технически неверно. ΔE₉₄ даст высокое значение для этой пары. Проблема ΔE₉₄ в другом: неравномерность в нейтральных оттенках и синей зоне.
3) Отсутствие упоминания white point - при конвертации RGB -> CIELAB критически важен выбор белой точки (D50, D65). Разные симуляторы/устройства могут использовать разные профили, что само по себе создаёт расхождения. Об этом ни слова.
4) Атомарный счётчик на GPU - потенциальное узкое место.
atomic_fetch_add_explicitпри большом количестве несовпадений создаёт некий contention. Для наивной стратегии с градиентами (454k несовпадений) это может деградировать производительность. Стоило упомянуть, почему это не проблема или как решается.5) Кластерный анализ на GPU - алгоритм не раскрыт. Самая интересная часть - кластерная фильтрация - описана только концептуально. Как именно определяются "соседние" пиксели? Connected components на GPU - нетривиальная задача. Используется ли union-поиск? Какой радиус соседства?
6) Непонятно, что именно вызывает выбросы: CPU, iOS или Xcode?
7) Утверждение "230% прирост производительности" вызывает вопросы. Сравнивается своя Metal-реализация ΔE₂₀₀₀ с CILabDeltaE, который реализует ΔE₉₄ - это разные алгоритмы с разной вычислительной сложностью. Корректнее было бы сравнивать либо ΔE₂₀₀₀ на Metal vs ΔE₂₀₀₀ на CPU, либо показать полный пайплайн (включая накладные расходы CoreImage). Также напрягает отсутствие бенчмарков, методологии измерения и информации о размерах тестовых изображений.