качество jpeg нельзя изменить при использовании bigtiff

Я использовал библиотеку bigtiff (из libtiff для работы с файлами размером более 4 ГБ) для создания образа размером 8 ГБ. Его можно сохранить и успешно отобразить, однако он все еще слишком велик для передачи или совместного использования. Поэтому я пытаюсь сжать его с поддержкой jpeg от bigtiff (или libtiff), но, похоже, это не работает для меня.

TIFFSetField(out,TIFFTAG_COMPRESSION,COMPRESSION_JPEG);
TIFFSetField(out,TIFFTAG_JPEGQUALITY,30);
TIFFSetField(out,TIFFTAG_JPEGCOLORMODE,JPEGCOLORMODE_RGB);

Как и выше, я установил тег качества Jpeg на 30, и программа может быть скомпилирована правильно. Однако в результате получилось изображение с качеством jpeg равным 75 при степени сжатия 0,99.

Есть ли у кого-нибудь идеи о том, что здесь происходит, или какие-либо предложения?

Спасибо, солнышко


person user3284701    schedule 11.08.2014    source источник


Ответы (1)


Не существует такого понятия, как значение качества JPEG. Настройки качества — это упрощения, которые кодировщики JPEG используют для выбора таблиц квантования.

Один энкодер может использовать диапазон от 0 до 100. Другой может использовать 1-8.

Вам нужно выяснить, что BigTif использует в качестве диапазона значений «Качество». Это 30 вполне может соответствовать вашим 75.

Возможно, вы захотите поиграть с разными значениями, чтобы выяснить это.

person user3344003    schedule 11.08.2014
comment
Спасибо за совет. Дело в том, что у него есть тег TIFFTAG_JPEGQUALITY. Я пытался присвоить ему разные значения, но независимо от того, что я ему присвоил, получилось 75. - person user3284701; 12.08.2014