Высоко-низко-битное кодирование для 10/12-битных изображений - PullRequest
0 голосов
/ 24 октября 2019

Недавно у меня была дискуссия с коллегой на тему высокобитовых кодировок против низкобитовых кодировок 12-битных изображений в 16-битной памяти (например, файлы PNG). Он утверждал, что старшие битовые кодировки было проще в использовании, поскольку многие программы просмотра изображений (например, предварительный просмотр изображений в Windows, эскизы проводника и т. Д.) Могут отображать их более легко для человека, используя простые преобразования 16-в-8, в то время какмалобитовые закодированные изображения выглядят в основном черными.

Я думаю больше с точки зрения обработки изображений и подумал, что, конечно, кодирование с младшими битами лучше, поэтому я сел, провел некоторые эксперименты и записал свои выводы,Мне любопытно, есть ли у сообщества дополнительные или лучшие идеи, которых мне не хватает.

  1. При использовании некоторого бэкэнда обработки изображений (например, Intel IPP) часто предполагается, что 10- и 12-битные кодировки физически принимают16 бит (без знака). Память читается как «число», так что значение серого в 1 (12 бит), закодированное в младших битах, дает «1», а в старших битах - 16 (фактически, сдвиг влево на четыре).
  2. При съемке младшего бита и соответствующего высокобитового изображения со смещением влево и выполнении некоторых операций (возможно, включая интерполяцию) будут получены идентичные результаты после сдвига вправо результата ввода высокого бита (для сравненияради).
  3. Основные различия проявляются при взгляде на гистограммы изображений: младшая битовая гистограмма "плотная" и длиной 4 тыс. записей, старшая битовая гистограмма содержит 15 нулей для каждой ненулевой записи, и имеет длину 65 тыс. записей.

3 a) Создание таблиц поиска (LUT) для операций занимает 16 раз дольше, их применение должно занимать одинаковое время.

3 b) Масштабирование операцийс гистограммой ^ 2 (например, матрицы слияния серой шкалы) становятся намного более дорогостоящими: 256-кратная память и время, если все сделано наивно (но опять же, чтобы исправитьy правильно обрабатывать любые потенциальные интерполированные пиксели значениями, которые не допускаются в исходной 12-битной кодировке, вам нужно ...)

3 c) Отладка векторов гистограммы - это PITA, если смотреть на в основном ноль с вкрапленным максимумом-битовые гистограммы.

К моему великому удивлению, это было все, что я мог придумать. Что-нибудь очевидное, что мне не хватает?

...