Показать сообщение отдельно
Старый 08.02.2014, 16:51   #2
jimon
 
Сообщений: n/a
Ответ: Сжатие grayscale с потерями

возьми самое простое - jpeg, сам алгоритм jpeg как раз сжимает чб картинки (каждый канал цвета он жмет отдельно), просто цветной jpeg переводит картинку из RGB в YCbCr, и последние два канала уменьшает ибо они не так сильно влияют на качество картинки

можно взять сжатие на вейвлетах : http://iquilezles.org/www/articles/wavelet/wavelet.htm

суть всех алгоритмов :
1) каким-то способом получить АЧХ чтобы выделить информацию к которой глаз наиболее чувствительный (дискретнокосинусное преобразование у jpeg и вейвлеты у jpeg2000)
2) получаем набор целых чисел
3) берем делим их на сколько-то, переводим их в инт и умножает на столько же - таким образом уменьшаем точность, ЭТО ЕДИНСТВЕННОЕ ЧТО ВЛИЯЕТ НА СТЕПЕНЬ СЖАТИЯ И КАЧЕСТВО ИЗОБРАЖЕНИЯ, ибо все остальные операции полностью обратимы и являются losless
4) сжимаем полученные цифры как поток битов, в jpeg для этого используют код хаффмана, в jpeg2000 используют арифметическое кодирование

вот и вся магия

ps. у меня диплом jpeg2000 на cuda, спрашивайте свои ответы
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо за это полезное сообщение:
den (08.02.2014), Кирпи4 (09.02.2014), HolyDel (08.02.2014), pax (08.02.2014), Randomize (08.02.2014), St_AnGer (16.02.2014)