Максимальный размер файла изображения JPEG с известными размерами - PullRequest
19 голосов
/ 21 марта 2012

Я собираюсь позволить пользователям загружать изображения размером 300x300, сжатые в формате JPEG.Есть ли способ определить, каким будет максимальный размер файла такого изображения?

Я могу представить, что это можно попробовать, сжимая случайный шум с качеством 100, но есть ли теоретический максимум?

Скажите, что изображение представляет собой абсолютно несжимаемый случайный шум, может ли он составлять 3 байта на пиксель (24-битный цвет) и иметь запас для метаданных?Или такое изображение может оказаться больше оригинала при сжатии?

Ответы [ 2 ]

17 голосов
/ 02 сентября 2013

Из википедии:

Для изображений самого высокого качества (Q = 100) требуется около 8,25 бит на цветовой пиксель http://en.wikipedia.org/wiki/JPEG#Sample_photographs

Таким образом, для Q=100 на изображении 300x300 это приведет к (300 * 300) px * 8.25 bits/px = 742,500 bits = ~ 93 kB

Существуют также режимы кодирования без потерь JPEG, которые практически не используются ( последнее предложение, второй абзац ) .Но у них был бы типичный RGB 24 bits/pixel.

5 голосов
/ 22 марта 2015

Нет ограничений на размер метаданных jpeg, что означает, что нет ограничений на размер файла jpeg.См. Ответ, который я привел, для объяснения причин, а также для примера реалистичной ситуации, когда метаданные могут стать большими: Каков максимальный размер метаданных JPEG?

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

Но если вам абсолютно необходимо полагаться на теоретические, то, к сожалению, это большой жирный шрифт

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

...