2010-12-07 1 views
0

Я использую SWT для сжатия изображения растрового изображения RAW в JPEG. Я пишу образ BufferedOutputStream для отправки байтов через сокет. Проблема в том, что сжатие занимает много времени (около 150 мс). Есть ли у кого-нибудь предложения ускорить весь процесс?ускорение создания образа/запись в байтовый массив (SWT)

bos.reset(); 
imageLoader.save(bos, SWT.IMAGE_JPEG); 

ответ

0

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

Другая возможность заключается в конвейерном процессе, так что вы отправляете одно изображение одновременно с сжатием следующего. Если у вас несколько ядер, может потребоваться несколько потоков для сжатия.

Followup

Если сжатие является существенным, вы, вероятно, лучше прилипание с JPEG. Однако вы должны знать, что сжатие JPEG является потерянным, и детали, которые вы теряете, никогда не могут быть восстановлены. (Напротив, дефлатер, который вы пробовали, был бы без потерь.)

+0

К сожалению, сжатие необходимо. Я также пытался использовать deflatter Java .. но полученные изображения были в зависимости от исходного изображения, очень большого. также deflatting взял как минимум столько же времени – christian

+0

спасибо;) Я знаю различия между без потерь и сжатием с потерями. deflatter будет равняться png. но качество jpeg соответствует нашим потребностям. это просто проблема с производительностью. – christian

+0

Тогда попробуйте конвейерную обработку. –

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

  • Нет связанных вопросов^_^