Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопросы по статье Jpeg сжатия и по самому Jpeg

2.5K
28 мая 2005 года
Akula
38 / / 17.01.2005
Я уже задавал подобные вопросы в форумах, но подробного ответа не получил.
На этом сайте лежит статья по сжатию JPEG. Но по ней у меня сразу возникает куча вопросов.
Помимо этой статьи, я прочитал еще несколько, но до конца у меня остались вопросы.
Если кто-то мне сможет их пояснить, буду очень признателен.
Вот например, мы имеем три матрицы IMG размером 8х8
1)матрица с Y
2)матрица с Cb
3)матрица с Cr
Матрицу Y мы оставляем без изменений, как сказано в статье. Сжимаем по предложенному способу, и получаем две сжатые матрицы, и одну матрицу Y, т.е.:
1)IMGY
2)Acb - матрицы полученные после преобразований
3)Acr
Далее, я распологаю их как предложено по зигзагу.
Но как их сохранять в файл.? Так последовательно: сначала число из матрицы Y,
потом число из матрицы Acb, а потом число из матрицы Acr, или надо поменять
местами, или без разницы? И какого типа эллемент матрицы A. BYTE - быть не может, т.к. есть отрицательные числа, а смысла с Integer - если он
занимает 2 байта? Имели 3 матрицы, 3 матрицы и осталось, только с другими значениями. В чем вообще тогда смысл? Или ДКП и Квантование, сами по себе ничего не дают. Возможно они только подготовительный этап для Хаффмана? Что Хаффман больше сжимает после этих двух этапов. Вообще запутался.
Буду очень признателен за пояснения.
С уважением Артем
3.3K
29 мая 2005 года
GENA_DJ
123 / / 08.03.2005
Цитата:
Originally posted by Akula
Я уже задавал подобные вопросы в форумах, но подробного ответа не получил.
На этом сайте лежит статья по сжатию JPEG. Но по ней у меня сразу возникает куча вопросов.
Помимо этой статьи, я прочитал еще несколько, но до конца у меня остались вопросы.
Если кто-то мне сможет их пояснить, буду очень признателен.
Вот например, мы имеем три матрицы IMG размером 8х8
1)матрица с Y
2)матрица с Cb
3)матрица с Cr
Матрицу Y мы оставляем без изменений, как сказано в статье. Сжимаем по предложенному способу, и получаем две сжатые матрицы, и одну матрицу Y, т.е.:
1)IMGY
2)Acb - матрицы полученные после преобразований
3)Acr
Далее, я распологаю их как предложено по зигзагу.
Но как их сохранять в файл.? Так последовательно: сначала число из матрицы Y,
потом число из матрицы Acb, а потом число из матрицы Acr, или надо поменять
местами, или без разницы? И какого типа эллемент матрицы A. BYTE - быть не может, т.к. есть отрицательные числа, а смысла с Integer - если он
занимает 2 байта? Имели 3 матрицы, 3 матрицы и осталось, только с другими значениями. В чем вообще тогда смысл? Или ДКП и Квантование, сами по себе ничего не дают. Возможно они только подготовительный этап для Хаффмана? Что Хаффман больше сжимает после этих двух этапов. Вообще запутался.
Буду очень признателен за пояснения.
С уважением Артем


Артем, можно ссылку на статью. Спасибо.

2.5K
29 мая 2005 года
Akula
38 / / 17.01.2005
Эта статья валяется в интернете в большом количестве, но я пока еще не видел людей, которые в ней полностью разобрались.
А вот собственно и ссылка:http://www.codenet.ru/progr/formt/jpeg_00.php
3.3K
30 мая 2005 года
GENA_DJ
123 / / 08.03.2005
Данная статья не является спецификацией формата или даже алгоритма. Просто объясняет общий подход к спектральным методам сжатия.

Я надеюсь, что ты умеешь перемножать матрицы и знаешь, что такое обратная и транспонированная матрицы.

Допустим, матрицу DCT ты построил. В статье, кстати, она нарисована с ошибками, но формула правильная.

У DCT преобразования есть прикольное свойство: (DCT) (умножить на) (DCT транспонированную) (равно) (единичная матрица).

Как произвести преобразование?

Пусть IMG - матрица фрагмента изображения размером 8на8. Тогда матрица результата RES=DCT*IMG*(DCT транспонированную).
Обратное преобразование IMG=(DCT транспонированную)*IMG*DCT.

Что такое квантование??

Здесь это обрезание высокочастотных компонент. Матрица крантования Q как раз устроена так, что в левом верхнем углу находятся минимальные коэффициенты, (соответствующие низким частотам), а снизу справа - наибольшие. При делении элементов матрица RES на матрицу Q обычно отбрасывают остаток от деления. В этом случае и происходит отбрасывание высокочастотных компонент.

Далее матрица, полученная при делении, сворачивается в строку, начиная с левого верхнего угла и заканчивая правым нижним (правило нарисовано в статье). Затем, по - моему, можно сделать RLE - сжатие, поскольку в строке будут длинные цепочки из нулей. Ну а потом - Хаффмен.

В статье ни описано ни формата файла, ни способа сохранения даравы Хаффмена. Поэтому, как я написал, это обзорная статья, описывающая общий подход. Рекомендую зайти на http://www.compression.ru/index.htm - здесь более правильные и подробные статьи есть.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог