2013-02-21 4 views
3

У меня есть вопрос относительно записи в формате JPEG. Предположим, у меня есть файл PNG example.png, и я хочу изменить формат файла в JPEG без потери информации. Для теперь, у меня есть два решения:Запись в формате Lossless JPEG

  • Solution 1: выполнить файл форматирования преобразование с MATLAB

    I = imread ('example.png');

    imwrite (I, 'example.jpg', 'Mode', 'lossless');

    II = imread ('example.jpg');

    отличается = I-II;

    макс (различаются (:))

    Это решение может производить без потерь файлов JPEG. Однако проблема с этим решением заключается в том, что некоторая информация в исходном изображении, такая как разрешение DPI, может быть потеряна. Более того, получаемое изображение не может быть просмотрено популярными программами просмотра изображений, такими как IrfanView и Windows Paint.

  • Решение 2: использовать программное обеспечение IrfanView. Используйте функцию «Сохранить как» программы IrfanView, мы можем легко изменить формат файла. Однако, несмотря на то, что при сохранении файла JPEG был установлен параметр «best quality 100», на выходном изображении также отображается некоторая потеря информации. Разница между этими двумя изображениями не равна нулю для всех пикселей.

Я поэтому задаюсь вопросом, что я должен сделать, чтобы решить проблему. Любые идеи будут оценены.

+0

Очень легко решить вашу проблему: остаться с изображением PNG. – mmgp

+0

Jpeg2000 - формат файла JPEG без потерь, но, к сожалению, практически ни одно программное обеспечение не поддерживает jpeg2000. .png и .gif - лучший выбор для файлов без потерь. –

+0

Ваше первое предположение необходимо изменить. «Обычные» изображения JPEG используют формат сжатия с потерями. Как говорит @mmgp, пребывание в PNG - хороший вариант. Если вы ищете лучшую степень сжатия, тогда вам нужно отказаться от идеи без потерь. – BitBank

ответ

1

У этой проблемы нет решения (пока, начиная с 2018 года).

Вы не можете избежать использования сжатия с потерями, если хотите, чтобы файл JPEG использовался в большинстве зрителей изображений.

Широко поддерживаемая версия JPEG основана на сжатии DCT, которое по определению выполняет преобразование и округление, что приводит к некоторым потерям точности.

Альтернативный метод сжатия JPEG без потерь JPEG-LS редко поддерживается.

Существует также расширение JPEG-XT, которое представляет собой комбинацию изображения с потерями + слой для восстановления оригинала без потерь. Он изящно выходит из просмотра изображений в формате JPEG, но он еще новее, и я не знаю, еще ли он реализован.

Если вам действительно нужно без потерь, используйте PNG. В JPEG лучше всего получить минимально уменьшенный JPEG в цветовом пространстве RGB при качестве = 100 (что не является буквально 100%).

Смежные вопросы