Я пытаюсь убедиться, что изображения METEOSAT, которые я получаю с их FTP-сервера, на самом деле являются действительными изображениями. Мое сомнение возникает из-за того, что все инструменты, которые я использовал до сих пор, жалуются на «определение таблицы Богуса Хаффмана» - но когда я просто прокомментирую это сообщение об ошибке, изображение выглядит вполне правдоподобным (сегмент серого на земле диска Земли).Почему «декодирование хафмана libjpeg» не разрешено?
От https://github.com/libjpeg-turbo/libjpeg-turbo/blob/jpeg-8d/jdhuff.c#L379:
while (huffsize[p]) {
while (((int) huffsize[p]) == si) {
huffcode[p++] = code;
code++;
}
/* code is now 1 more than the last code used for codelength si; but
* it must still fit in si bits, since no code is allowed to be all ones.
*/
if (((INT32) code) >= (((INT32) 1) << si))
ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
code <<= 1;
si++;
}
Если я просто закомментируйте чек, или добавить проверку на huffsize[p]
быть отличен от нуля (как в управляющее выражение объемлющего передачи контура в), затем djpeg
удается преобразовать изображение к BMP, который я могу рассмотреть с небольшими проблемами.
Почему в комментарии утверждается, что коды с одним кодом не разрешены?
Вау, спасибо, и я даже не ожидал ответа, чтобы когда-либо появляться, не говоря уже о ничтожестве! Теперь мне просто нужно сказать космическому агентству, что их изображения плохие. –