Декодировать часть файла JPEG

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

2 ответа

Решение

Частичное декодирование JPEG было реализовано в jpeglib-turbo год назад. Я не пробовал, но думаю, это должно сработать.

Проверь это:

Добавить дополнительную частичную оптимизацию декодирования #34

Вы не можете избежать декодирования строк сканирования, которые хотите пропустить, но вы можете избежать их хранения в любом месте. Когда вы получите обратный вызов из libjpeg для каждой строки, просто подождите, пока номер строки не совпадет с тем разделом строк развертки, который вы хотите.

Другие вопросы по тегам