Вычислить / оценить размер сжатого файла без сжатия

Я хочу рассчитать / оценить, каким будет размер файла изображения (.jpg) после сжатия с помощью значения Encoder.Quality. Здесь я не должен выполнять какое-либо сжатие перед оценкой. Есть ли какая-либо формула для этого?

Есть какие-то приблизительные оценки. Я хочу уменьшить размер файла изображения до ‹250kb без итеративного сжатия.

Есть ли какая-либо оценка значения Encoder.Quality на основе ширины, высоты и глубины (dpi) изображения (jpg) и т. Д.

Заранее спасибо.


person Naveen Bathina    schedule 09.02.2016    source источник
comment
Я думаю, что итеративное сжатие выполняется быстрее, чем любые другие вычисления / оценки. Однако вам следует сжимать в память, а не записывать файлы на диск.   -  person wimh    schedule 09.02.2016
comment
Невозможно ответить - вы даже не упомянули алгоритм. Однако во всех алгоритмах, кроме самых неэффективных, степень сжатия зависит от данных и не может быть рассчитана. Вы можете делать приблизительные оценки только на основе алгоритма, типа контента (например, клип-арт, фотография) и уровня качества.   -  person Panagiotis Kanavos    schedule 09.02.2016
comment
Я посетил ссылку stackoverflow.com/questions/2094064/   -  person Naveen Bathina    schedule 09.02.2016


Ответы (1)


В конечном счете, вы не можете узнать, пока не произведете фактическое сжатие.

С другой стороны, энтропия данных (Шеннона) обычно является хорошей оценкой битрейта сжатого файла. Для оптимальной точности вам нужно будет вычислить дискретное косинусное преобразование (DCT) данных и применить квантование, соответствующее качеству Q, которое вы хотите использовать. Однако вы также можете попробовать применить квантование в исходной области, а затем вычислить энтропию. Вы также можете попробовать оценить часть изображения и экстраполировать сжатый битрейт на все изображение.

Наконец, если типы изображений, которые вы сжимаете, более или менее однородны - то есть вы получаете одинаковые коэффициенты сжатия для большинства изображений - вы можете построить справочную таблицу, чтобы получить свои оценки. Если ваши изображения неоднородны, вы также можете попытаться классифицировать изображение (возможно, на основе энтропии?) И использовать другую таблицу поиска для каждого класса.

person mhernandez    schedule 11.02.2016
comment
Я согласен с тем, что точной оценки нет, но я намерен найти хотя бы приблизительную оценку. - person Naveen Bathina; 12.02.2016
comment
У вас есть две (вероятно, грубые) оценки: одна, основанная на энтропии, а вторая - на усреднении сжатых размеров. Если вам нужна помощь в вычислении энтропии, вы можете почерпнуть вдохновение в Интернете (например, csharpprogramming .tips / 2013/07 / Data-Entropy.html). - person mhernandez; 12.02.2016