Pull to refresh

Comments 19

Там используется комбинация LZ77 и алгоритма Хаффмана
> изображение, размером 2000*1000 пикселов будет иметь размер около 6 мегабайт

Наверное, имелось в виду, 9Мб?
24 bits per pixel — это тоже полноцветное изображение. Как раз получается около 6 мб.
3 байта на пиксель, если без альфа канала, умножить на 2 мегапикселя равно 6 мегабайт.
Ровно 6 мегабайт, но меньше 6 мебибайт.
Добавили бы ещё алгоритмы на основе вейвлет преобразований (JPEG2000).
Статья полезная, но несколько сумбурная.
Я с удовольствием напишу про вейвлеты, но мне кажется, что эта тема заслуживает отдельного топика, а возможно даже нескольких.
Вот спасибо, а я думал, что мне для описания стеганографического метода Коха-Жао прийдётся начинать писать статью о JPEG.
А зачем такой зигзаг обход? я забыл, но помню что так делают. Вроде бы в этом случае соседние отсчеты будут слабокррелируемы — а значит сигнал станет более подобен шуму — что должно только отрицательно сказываться на сжатии.
При использовании ДКП, после квантинизации его коэффициентов у нас получается матрица, у который бОльшие элементы сосредоточены в верхнем левом углу, а нули в нижнем правом. Зигзаг позволяет ранжировать эти величины по убыванию, что положительно сказывается на дальнейшей обработки этих коэффициентов RLE алгоритмом.
При использовании ДКП, после квантинизации его коэффициентов у нас получается матрица, у который бОльшие элементы сосредоточены в верхнем левом углу, а нули в нижнем правом. Зигзаг позволяет ранжировать эти величины по убыванию, что положительно сказывается на дальнейшей обработке этих коэффициентов RLE алгоритмом.

ЗЫ: Почему-то мой комментарий не опубликовался, дублирую.
Реально зигзагом обхдят не само изображение, а после DCT. Вообще, как я понял, такой порядок выбрали для оптимизации под процессоры.
Может не мое дело, но я бы поместил этот топик в блог «Обработка изображений».
Форматирование нда…
Я так понял, чем понятнее метод, тем более подробно он расписан.
Сумбурно как-то, да и многовато для одного поста. Я для всеобъемлющего же обзора неполно, неохвачены другие подходы.

Ни одной ссылки на литературу, одна иллюстрация — тоже никуда не годится.

Но за старание спасибо.
Выбор Kr и Kb зависит от оборудования. Обычно берётся Kb=0.114;Kr=0.299. В последнее время также используется Kb=0.0722;Kr=0.2126, что лучше отражает характеристики современных устройств отображения.

В JPEG стандарте коэффициенты преобразования RGB <> YCbCr указаны точно и не зависят от оборудования: www.jpeg.org/public/jfif.pdf

RGB to YCbCr Conversion
Y = 0.299 R + 0.587 G + 0.114 B
Cb = - 0.1687 R - 0.3313 G + 0.5 B + 128
Cr = 0.5 R - 0.4187 G - 0.0813 B + 128

YCbCr to RGB Conversion
R = Y + 1.402 (Cr-128)
G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)
B = Y + 1.772 (Cb-128)


Sign up to leave a comment.

Articles