2015-02-15 5 views
0

Мы предложили и смоделировали метод вставки LSB, который на 10% меньше бит изменяет, чем обычный LSB. Однако, к нашему удивлению, значение PSNR предлагаемого метода очень близко к регулярному LSB (около ~ 1% увеличения)Меньше изменений битов, но одно и то же значение PSNR

Это действительно сбивает с толку, поскольку наш предложенный метод делает меньше изменений LSB, но значение PSNR остается тем же. Поблагодарили бы за любую помощь.

Мы используем Matlab и тестирование на RGB изображения (embeding на LSB всех трех RGB каналов)

+0

Вы говорите, что вы встраиваете в LSB, но ваше значение * близко * к исходному значению. Разумеется, LSB может быть только нулевым или одним, так как вы можете быть * близко * - наверняка, самый дальний из вас, возможно, один? Кроме того, почему вы хотите увеличить PSNR? Какие инструменты/среда вы используете? –

+0

Наше предположение состоит в том, что, поскольку наш предложенный алгоритм имеет на 10% меньше бит LSB, а затем обычный LSB, общий PSNR должен быть выше обычного LSB. (он показывает только увеличение на 1%). Я действительно смущен. Также я использую Matlab – 130wde

ответ

0

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

Я предполагаю, что вы вставляете только 1 бит на пиксель, и это младший бит, а не второй, третий или любой другой.

Это означает, что если бит переворачивается, квадратная ошибка между оригиналом и измененным пикселем равна 1. Если мы предположим поток случайных бит, мы ожидаем изменить половину пикселей, в которые мы вставляем нашу информацию. Все это может быть инкапсулировано в следующие две функции.

mse = @(bits, x, y) (0.5 * bits)/(x * y) 
psnr = @(signal, noise) = 10 * log10(signal^2/noise) 

Где bits это общее число битов вложения, x и y размер изображения, signal максимальное значение интенсивности в исходном изображении (я использовал 255) и noise является MSE.

Предположим, что изображение 512x512. Для простоты рассмотрим также PSNR только для одного цветового компонента.

5000 бит: 68,3368 дБ

4500 бит: 68,7944 дБ

PSNR увеличить: 0,6696%


100000 бит: 55,3265 дБ

90000 бит: 55,7841 дБ

PSNR увеличение: 0,8271%


В самом деле, вы можете получить общую символическую форму.

mse_orig = (bits/2)/(x * y) = bits/(2 * x * y) 
mse_steg = (0.9 * bits/2)/(x * y) = 0.9 * mse_orig 

psnr = 10 * log10(signal^2/mse) 

percent_change = 100 * (psnr_steg - psnr_orig)/psnr_orig 

Используя свойство log(a/b) = log(a) - log(b), выше, может быть упрощен до:

percent_change = 100 * (-log10(0.9)/log10(2* x * y * signal^2/bits)) 

Где bits это количество бит встраивать с регулярным LSB вложения (то есть, 5000 и НЕ 4500).

+0

Удивительный всеобъемлющий ответ. Я приветствую тебя Рети! – 130wde