Я рассматриваю проблему уменьшения пространства для хранения при хранении нескольких изображений JPEG вместе как одно изображение большего размера. Основная интуиция заключается в том, что изображения, как правило, имеют некоторые сходства (например, те, которые взяты в одном месте или примерно в один и тот же момент времени), и можем ли мы использовать это сходство для экономии места?Сжатие изображений JPEG
Общий поток: Входные JPG
изображения -> Каждое изображение преобразуется в RGB
Плитки Image -> реорганизовать подобные RGB
плитки вместе -> Опять же преобразование в формат JPG
. Естественно, при получении изображений нам нужно будет обратного процесса.
Используя коэффициент DC компонента Y в качестве меры подобия для реорганизации плитки, я получил экономию пространства ~ 8% для 10 изображений. Когда я делаю это для 100 изображений, экономия уменьшается до ~ 3%.
Как получить экономию после реорганизации плитки - то есть какая часть процесса кодирования JPEG использует это изображение плитки реорганизации?
Вместо коэффициента DC Y компонента, есть некоторые другие показатели вы могли бы думать о том, что будет лучше, эксплуатируемые кодирования JPEG
После доработки:
Есть некоторые другие формат изображения, кроме JPG, который может использовать подобный вид схожести лучше при объединении нескольких изображений? Например, PNG?
Спасибо, это имеет большой смысл! Я использую libjpeg для кодирования и декодирования. Поскольку JPEG делает DCT в макроблоках 8x8, сходство между плитами (больше макроблоков), вероятно, мало помогает. Но, я думаю, коэффициенты DCT соседних макроблоков закодированы относительно, и это может быть улучшено в результате такой реорганизации плитки в некоторой степени. Я пересмотрел свой вопрос - пожалуйста, взгляните. – user655617
Рад, что я мог помочь прояснить ситуацию. Да, libjpeg - это стандартная реализация стандарта JFIF стандарта JPEG для стандарта JPEG. Я не помню коэффициенты DCT с использованием дельта-кодирования (среди соседних макроблоков). AFAIR, каждый макроблок становится единой матрицей коэффициентов 8x8, которая затем уничтожается (делятся на уменьшение количества бит, необходимых для их хранения), и именно здесь возникает «потеря» в сжатии с потерями) и считывается в zig -размерная мода. Это упорядочение дает длинные прогоны 0s, которые эффективно сжимаются с помощью кодирования длины во время выполнения (вместо хранения 17 нулей мы сохраняем 17, 0). –