LINUX.ORG.RU

лучший алгоритм компрессии серых изображений


0

0

необходимо передавать медицинские изображения
по сети. Какие способы компресси на сегодня state-of-art
Посмотрел на
http://compression.ru/artest/links.html
http://spiedl.aip.org/getabs/servlet/GetabsServlet?prog=normal&id=PSISDG0...
но так и неопределился за что браться

(ИМХО) Медицинские изображения надо сжимать без потерь, поэтому - TIFF (вариант с LZW) т.к. поддерживается большинством image-редакторов и программ для просмотра на любых ОС.

Сайт о сжатии http://compression.graphicon.ru/

P.S. Ultimate compression resources catalog http://www.compression-links.info/ Тут 2400 ссылок по сжатию изображений.

P.P.S. С точки зрения математики медицинские изображения мозга и жопы требуют разных алгоритмов сжатия потому, что разложения по их собственным функциям сильно отличаются :)

quickquest ★★★★★
()

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

anonymous2 ★★★★★
()
Ответ на: комментарий от anonymous2

> DICOM 
естественно про DICOM всё известно.
хотелось бы, без потерь,
макс. быстро, 16бит с макс. компрессией.
Скажем не совсем медицинские, хотя и для них
тоже всё это необходимо- а видео поток.

Valeriy_Onuchin ★★
() автор топика
Ответ на: комментарий от Valeriy_Onuchin

действительно есть о чем подумать на праздниках:)
Всех с Новым Годом!

Valeri Onuchin wrote:

> I need to send large gray-scale images over net.
> What is the best method (fast, effective, lossless) of compression.
> http://compression.ru/download/i_glless.html (??)

I would think that this depends on what kind of images you have. How
smooth those are? Any interesting directional properties (like in
printed text)? Any large areas with zero information in them? Bit depth.
Stuff like that.

I wonder if in any of tests mentioned in the paper they used predictors
while compressing with PNG. Tiff has horizontal differencing predictor,
and PNG has two more - vertical and Paeth. Using differencing on smooth
greyscale should yield a dramatic improvement, yet on high-noise images
that would actually be detrimental.

One very well known idea to play around with is to separate
low-frequency component (background). For example you could blur the
image and compress it using very low-quality JPEG, then subtract
resulting image from original and compress the result using zip/lzw.
You'll have to send both JPEG and LZW compressed stuff and recombine the
two on the other end. TIFF format would allow for storing of both in the
same file.

Also using tiles instead of striping (as allowed by TIFF) could be
beneficial in certain applications, where you have large areas of
uniform tone.

Valeriy_Onuchin ★★
() автор топика

Просто интересно, насколько сильно надеешься выиграть по сравнению с чем-то стандартным, вроде TIFF или даже png?

anonymous_incognito ★★★★★
()
Ответ на: комментарий от Valeriy_Onuchin

как было сказано выше все зависит от того какова
структура изображения - " Tiff has horizontal differencing predictor,
and PNG has two more - vertical and Paeth."
Если сделать всё "правильно" выигрыш в компрессии может быть в разы 
(~2-3), но тут важна еще и скорость. Хотя, сознаюсь - я новичок в этом
вопросе. Хотел бы немного разобраться "на досуге".

Valeriy_Onuchin ★★
() автор топика
Ответ на: комментарий от Valeriy_Onuchin

>интересно попробывать разбиение на tiles + multithread compression

Тогда надо копать в сторону адаптивного группового кодирования + пирамидальных структур.

quickquest ★★★★★
()
Ответ на: комментарий от quickquest

http://docs.hp.com/en/B2355-90068/ch04s01.html
"
For screen dumps, FAX images, computer-generated images, or any image that requires perfect reconstruction when decompressed, use LZW compression.
"
оказывается пользуют обычный lzw - а это 200 lines of code
для compress+decompress

Valeriy_Onuchin ★★
() автор топика
Ответ на: комментарий от Valeriy_Onuchin

как всегда всё гени[т]ально просто:)
Мои случаи:
1. томограмма - 512 слёв 512х512 16/32 бит пихелей
2. предача видео потока. Кадры 640х480 и больше, 
   rate = 200 кадров в секунду.

Решение: XOR + LZO

- так как соседние кадры/слои различаются незначительно - 
  пропускаем их через XOR (можно с порогом)
- затем компрессуем с помощью LZO. 
  К его достоинствам относятся: 
   - in memory
   - compression ration better than LZW
   - compression 2 times faster than zlib, decompression 
     3 times faster than zlib
   - thread-safe
   - block compression (!!). 
     1. Это позволяет реализовать компрессию  изображения по tiles
     2. пересылать кадры (в случае видео) по UDP протоколу

Ожидаемая компрессия - в 10ки раз со скоростью превышающую zlib/lzw
на порядок.

на некоторое время тема закрыта.


Valeriy_Onuchin ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.