Использование избыточности среди изображений JPG

Я хочу использовать избыточность среди множества аналогичных colored JPG изображений. Set redundancy compression был успешно использован для аналогичных 8-bit grayscale изображений. Они в основном находят MAX а также MIN из набора изображений и кодировать исходные изображения как differences относительно изображения MAX или MIN, в зависимости от того, какая разница меньше. Около 20-50% дополнительного сжатия было получено для изображений в градациях серого с использованием этого подхода, помимо обычных инструментов сжатия, таких как gzip или bzip. Я делаю следующее:

  • Распакуйте изображения JPG в буферы RGB-символов
  • Вычислить буферы MIN и MAX
  • Кодировать разностные буферы в виде изображений JPG

Проблема заключается в том, что для извлечения исходного изображения из разностного изображения в идеале мне нужно было бы кодировать разницу без потерь. Но нет lossless преобразование из RGB->JPG в libjpeg и даже при качестве =1,0, поскольку разностные коэффициенты малы (1~10), я теряю почти всю информацию (почти все декодированные данные составляют 1~3).

Чтобы решить эту проблему, я попытался с помощью huffman encoding разницы в буферах символов

  • Кодирование разностных буферов с использованием кодирования Хаффмана

Исходные изображения JPG имеют размер ~256 КБ, соответствующий буфер RGB составляет ~7,8 МБ, а разностные изображения, закодированные Хаффманом, имеют размер ~ 2,2 МБ. Таким образом, кодирование Хаффмана действительно экономит много места по сравнению с RGB-буферами, но оригинальные эквиваленты JPG намного меньше.

  • Любые предложения по хранению этих разностных буферов, эффективно сопоставимых по размеру с оригиналом 256 КБ JPG файлы?
  • Есть ли способ сохранить эти разностные буферы с low valued data coefficients как JPG изображения без потери существенной информации?

0 ответов

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