2013-09-02 2 views
0

Я знаю, что этот вопрос задавался много раз, но я все еще не могу решить свою проблему.Библиотека компрессии для Java

Я пытаюсь сжать 3 jpegs (около 500 ~ 700kb каждый) и аудиофайл (pcm 1.5mb).

Я пробовал Java.util.zip, zip4j, и я получаю сжатие 2% даже в максимальной настройке сжатия. Мне понадобится сжатие на 30-40%.

Это невозможно сделать?

Причина, по которой я пытаюсь сжать данные, является пропускной способностью моего сервера, и я хотел бы получить максимальную скорость. Это займет около 6-8 секунд для ZIP-файла размером 3,5 Мб ... Моя цель - получить около 1 ~ 2 секунды.

+0

Довольно уверен, что вы не получите 30% -40%. У вас будет больше удачи в получении лучших серверов. –

+7

JPEG уже сжатый формат. Вы не можете получить 30% -40%, не уменьшая размер изображений. – Tom

+0

Я рекомендую вам использовать [CDN] (http://en.wikipedia.org/wiki/Content_delivery_network), например Amazon S3. Следовательно, ваш сервер может сосредоточиться только на обслуживании содержимого html, любые большие файлы отправляются на ваш CDN – gerrytan

ответ

2

Это невозможно сделать?

Как правило, невозможно добиться значительного дополнительного сохранения путем сжатия уже сжатого файла.

Проще говоря, сжатие без потерь работает, избавляясь от избыточности в исходном файле. После сжатия файла второй раунд сжатия будет иметь небольшое (если есть) избыточность для удаления. В случае JPEG формат файла уже сильно сжат, поэтому дальнейший раунд сжатия без потерь очень мало помогает.

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

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