Декодировать часть файла JPEG
Я пытаюсь загрузить часть большого файла JPEG (сотни мегапикселей) с ограниченным объемом памяти. Мне нужно только около 1000 строк развертки из 20000. Кажется, что текущая реализация libjpeg (а также ее форка libjpeg-turbo) не позволяет пропустить ненужные строки сканирования 19k без их декодирования. Есть ли обходной путь для этого, не копаясь во внутренностях libjpeg?
2 ответа
Частичное декодирование JPEG было реализовано в jpeglib-turbo год назад. Я не пробовал, но думаю, это должно сработать.
Проверь это:
Добавить дополнительную частичную оптимизацию декодирования #34
Вы не можете избежать декодирования строк сканирования, которые хотите пропустить, но вы можете избежать их хранения в любом месте. Когда вы получите обратный вызов из libjpeg для каждой строки, просто подождите, пока номер строки не совпадет с тем разделом строк развертки, который вы хотите.