ee2:
AlexTutubalin:
его станет нельзя многопоточно параллельно декодировать и вот это вот все
Так 8 бит на пиксель это итоговый "средний по больнице" размер пикселя, а не реальная их размерность в файле. В файле пиксели занимают 11 и 7 бит. Если банально куда-то в блок добавить 1-битный флаг, что блок требует иной обработки, проблем с многопоточностью и вот этим вот всем быть не должно. Ну станет может 8,5 бит на пиксель в среднем по картинке в самом худшем случае.
У вас станут блоки переменного размера.
Сейчас, если я хочу начать раскодировать 1024-й пиксель сразу - я позиционируюсь на 1024-й байт и начинаю фигачить (ну не на любой байт можно, а надо помнить про блоки в 32 пикселя/32 байта). Если есть процессор с миллионом ядер - можно (если пикселов больше 32M) все ядра занять.
А с блоками переменного размера так нельзя.
Добавлено спустя 2 минуты 5 секунд
Def:
- код выделить все
if (data.size() > 1) {
Ну этот код срабатывает на файлах, где больше одного SubIFD. Так примерно на всех, что я видел.
Def:
Хак безобразен, но это всего лишь хак для конкретного случая.
В конкретном случае A7, который я смотрел отладчиком, - он срабатывает и bitsPerSample становятся равными 8.
Могу еще пару камер на выбор проверить.
Вообще, данный конкретный комментарий в RawSpeed отдельно забавляет. Там помянута Sony E-550, каковой в природе не существует (и в списке поддерживаемых библиотекой - нету). Есть A-550. Из чего мы делаем обычный вывод: не надо читать комментарии, надо код читать.