Изменение размеров изображения JPEG во время декодирования

Я работаю над программой, которая создает миниатюры изображений JPEG на лету. Теперь я думал: так как изображение JPEG создается из 8x8-пиксельных блоков (Википедия имеет большое объяснение), было бы возможно пропустить часть декодирования?

Скажем, то, что мои миниатюры по крайней мере в 8 раз меньше, чем исходное изображение. Мы могли затем отобразить каждого 8x8 блок во входном файле к 1 пикселю в выводе декодирования включением только постоянного срока дискретного косинусного преобразования. Большинство данных изображения может быть отброшено сразу же и не должно быть обработано. Кроме того, использование памяти уменьшается фактором 64.

Я не хочу реализовывать это с нуля; это легко займет неделю. Есть ли какой-либо код там, который может сделать это?

В противном случае это вызвано тем, что этот подход не стоит, или просто потому что никто еще не думал о нем?

7
задан Josh Lee 23 March 2010 в 14:48
поделиться

3 ответа

Я думаю, что функция djpeg's scale делает что-то вроде этого.

Она может масштабировать блок 8x8 до любого размера между 1 и 16 пикселями.

"Это интересно, потому что различные пространственные размеры могут быть получены непосредственно из данных JPEG (DCT) без отдельного полного декодирования и пространственной передискретизации."

.
4
ответ дан 7 December 2019 в 09:59
поделиться

Проект, над которым я работаю в настоящее время, использует ImageGen, который делает все виды изменения размера изображения на лету - это может окупиться, если список функций соответствует тому, что вы хотите. В противном случае, я предполагаю, что вы хотите реализовать сжатие файлов с потерями на изображениях, что должно было сделано раньше!

0
ответ дан 7 December 2019 в 09:59
поделиться

Согласно этот ответ , EPEG из Просвещения сделал именно это, собрав коэффициенты DCT для уменьшите изображение в 8 раз. Вот текущая домашняя страница EPEG .

2
ответ дан 7 December 2019 в 09:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: