Пояснительная записка (1209785), страница 7
Текст из файла (страница 7)
На рисунке 3.10 приведены три изображения: слева оригинал, справа изображение с внедренным ЦВЗ, а посередине – разница между ними с увеличенной яркостью.
Рисунок 3.10 –Внедренный ЦВЗ и разница с оригиналом
-
Сравнительный анализ алгоритмов генерирования и встраивания цифровых водяных знаков в видеопоследовательность
Алгоритм Wu относится к алгоритмам, встраивающим информацию на уровне коэффициентов дискретного косинусного преобразования (ДКП) и используется в данных, сжатых по стандартам MPEG с высоким разрешением. При внедрении осуществляется добавление псевдослучайного массива к коэффициентам ДКП с индексом (0;0). Этот алгоритм относительно прост в реализации, но при встраивании возможно значительное ухудшение качества видео. Алгоритм Wu является устаревшим, хотя может использоваться и в видео высокого качества за счет увеличения видеопотока.
Дальнейшим усовершенствованием этого алгоритма является стегосистема Hartung, которая задействует большее количество коэффициентов ДКП, является робастной к фильтрованию, зашумлению и дискретизации, исправляет проблему с видимостью ЦВЗ и ее возможно использовать для всех видов кадров. Но при этом она обладает высокой вычислительной сложностью. Hartung используется в данных, сжатых по стандарту MPEG-2.
Алгоритм Langelaar-1 встраивает информацию на уровне битовой плоскости, заменяя незначащие биты. К его достоинствам относятся высокая пропускная способность и низкая вычислительная сложность, но при этом возможны незначительные искажения. Этот алгоритм, как и Hartung, используется в данных, сжатых по стандарту MPEG-2.
Алгоритм Langelaar-2 использует встраивание информации на уровне энергетической разности коэффициентов ДКП, вследствие чего его вычислительная сложность как минимум вдвое меньше чем у других алгоритмов этой группы, он вносит меньше искажений, чем предыдущие алгоритмы и является робастным к удалению ЦВЗ. К его недостаткам можно отнести то, что при увеличении разности энергий возможно появление видимых искажений. Этот алгоритм, применяется в видео, кодированных на высоких скоростях.
-
Разработка программного комплекса для проверки подлинности видеофайлов
-
Формирование требований к программному комплексу и постановка задачи
Реализуемый в рамках выпускной квалификационной работы программный комплекс должен выполнять следующие задачи:
-
генерировать цифровой водяной знак, соответствующий предъявленным требованиям;
-
встраивать сгенерированный цифровой водяной знак в видеопоследовательность выбранного формата;
-
обнаруживать встроенный цифровой водяной знак в видеопоследовательности;
-
извлекать цифровой водяной знак из видеопоследовательности в том случае, если видеофайл не подвергался изменениям;
-
на основе извлеченного (или нераспознанного) цифрового водяного знака делать вывод о подлинности видеофайла.
Прежде чем приступить к разработке программного комплекса необходимо выполнить следующие задачи:
-
выбрать формат видеофайла, в который будет встраиваться водяной знак и изучить его структуру;
-
выбрать и изучить один из предложенных методов встраивания цифровых водяных знаков в видеопоследовательность;
-
выбрать средства реализации программного комплекса.
-
Формат Audio Video Interleave
-
Описание формата Audio Video Interleave
Audio Video Interleave (AVI) буквально переводится как «чередование аудио и видео». Это формат, созданный компанией Microsoftв ноябре 1992 года. На сегодняшний день ему более двадцати лет, но он остается одним из основных видеоформатов, используемых в операционных системах семейства Microsoft Windows.
Формат AVI–это спецификация форматаRIFF (формата файлов-контейнеров для хранения таких потоковых мультимедиа-данных, как аудио, видео).
Видеоформат определяет структуру видеофайла, то есть то, как хранится файл на носителе информации (CD, DVD или жестком диске).
Из-за большого количество форматов видео, стала возникать путаница между понятиями «стандарт видео», «видеокодек» и «медиаконтейнер».
Кодеком (термин образован следующим образом: CODEC = COder + DECoder, кодек = кодер + декодер) называются аппаратные или программные средства, которые преобразуют видеоинформацию в поток уплотненных данных и наоборот.
Медиаконтейнером является формат файла, хранящий в себе информацию о своей внутренней структуре. Медиаконтейнер можно назвать метаформатом, поскольку он содержит данные и информацию о том, каким образом данные будут сохраняться внутри файла.
Медиаконтейнер схож с zip-архивом. Как медиаконтейнер хранит видеофайлы и аудиофайлы внутри себя, так и zip-архив содержит JPEG-изображение, которое будет сжато по определенному алгоритму. Специальный модуль обычно отвечает за сжатие информации в архивах, а в медиаконтейнрах эту исполняет играет кодек.
Существует как минимум две характеристики, определяющие работу с видеофайлом. Это тип медиаконтейнера и кодек (кодеки), примененные при кодировании его содержимого.
Формат записи в файл данных различного типа (видео, аудио, субтитры, служебная информация и т. д.) определяется типом медиаконтейнера. Если известен тип контейнера, программа (к примеру, видеоплеер) способна корректно извлечь из него данные, синхронизировать аудиоданные с видеоданными и так далее.
Если программа распознает кодек, она может получить аудио и видео информацию из закодированного потока данных, которая содержится в медиаконтейнере.
Файлы с расширением AVI может содержать видео- и аудиоданные, сжатые с помощью различных комбинаций кодеков. Благодаря этому возможно синхронно воспроизводить видео со звуком. AVI файл может содержать разные виды сжатых данных (например, DivX – видео + WMA – аудио или Indeo – видео + PCM – аудио). Это зависит от того, что за кодек использован при кодировании и декодировании.
AVI является наименее сжатым из известных видеоформатов [15]. Файлы, которые созданы с помощью этого метода, имеют расширение.avi. Видео- и аудиоданные записываются в один файл на диске таким образом: информационные потоки делятся на множество одинаковых частей, после чего записываются в один файл по очереди. Первым делом записывается заголовок, после - первая часть видео и первая часть звука; затем вторая часть видео и вторая часть звука и т. д. Иными словами, применяется технология чередования звука и видеокадров, которой, собственно, и объясняется аббревиатура AVI (Audio Video Interleaved).
-
Структура формата Audio Video Interleave
Все AVI файлы включают в себя два обязательных блока LIST, которые определяют формат и данные потока. AVI файлы могут также включать индекс-блок. Этот дополнительный блок определяет расположение видеоданных в файле. Типичная структура AVIфайла описана ниже и приведена на рисунке 4.1:
RIFF ('AVI' LIST ('hdrl' <заголовок>) LIST ('movi' <видео>) ['idx1' <индекс>])
Рисунок 4.1 – Структура AVIконтейнера
LIST hdrl – это блок, содержащий заголовок AVI файла и заголовки потоков данных. Типичная структура:
-
LIST ('hrdl' 'avih' (<заголовок AVI файла>);
-
LIST ('strl' <заголовок потока 1>);
-
LIST ('strl' <заголовок потока 2>);
-
LIST ('odml' <расширенный заголовок AVI файла>).
В AVI файлах основной заголовок, с которого начинается файл, определяется блоком с FOURCC 'avih'. В заголовке содержится глобальная информация для всего файла, например, количество потоков в файле, ширина видеопотока и его высота.
FOURCC (четырехсимвольный код) представляет собой 32-разрядное целое число без знака, созданное путем объединения четырех символов ASCII. Например, строка «abcd», представленная в виде FOURCC, выглядит как 0x64636261. Формат AVI использует коды FOURCC для идентификации типов потоков, фрагментов данных, записей индекса и другой информации.
Рисунок 4.2 – Структура основного заголовка
-
dwMicroSecPerFrame – указывает число микросекунд между кадрами. Это общее значение для всего файла;
-
dwMaxBytesPerSec – указывает примерную максимально возможную скорость передачи данных файла. Это значение определяет число байт в одну секунду, которые должны обрабатываться системой;
-
dwFlags – содержит перечень свойств видеофайла. Частичный перечень свойств видеофайла и их возможные значения приведены ниже в таблице 4.1;
-
dwTotalFrames – указывает, сколько кадров в целом содержит файл;
-
dwStreams – указывает число потоков в файле. К примеру, файл с видео и аудио вмещает два потока;
-
dwSuggestedBufferSize – указывает рекомендуемый размер буфера для чтения файла. Размер буфера должен быть достаточно велик, чтобы вместить крупнейший блок данных, включающий заголовок и сигнатуру. Программа для воспроизведения файла перераспределяет память во время работы в том случае, если установленное значение слишком мало или равно нулю. Это снижает производительность;
-
dwWidth – задает ширину AVI файла;
-
dwHeight – задает высоту AVI файла;
Таблица 4.1 – Значения свойств видеофайла
Флаг | Описание |
AVIF_HASINDEX | В файле присутствует блок 'idx1'. |
AVIF_MUSTUSEINDEX | Указывает, что индекс, а не физическое расположение блоков в файле, должны быть использованы, чтобы определить порядок представления данных. |
AVIF_ISINTERLEAVED | Указывает на чередование аудио и видео данных. |
AVIF_COPYRIGHTED | Указывает, что файл содержит защищённые авторскими правами данные и программное обеспечение. |
-
Метод замены наименее значащего бита как средство стеганографического сокрытия информации
Цветовое пространство RGB состоит из трёх цветовых каналов [16]: красного (red), зелёного (green), синего (blue). Эта модель является аддитивной, что означает, что итоговый цвет будет образовываться в результате слияния этих трёх компонент. При помощи различных комбинаций этих каналов возможно получить любой цвет. Число цветов зависит от числа бит, отводимых на хранение количественного значения компоненты цвета. Наиболее распространенным форматом является RGB24, в нем на каждую цветовую компоненту приходится по восемь бит, следовательно, количественное значение компоненты находится в интервале [0; 255].
Пример матриц цветовых компонентов приведен ниже на рисунке 4.3.
Рисунок 4.3 – Матрицы цветовых компонент R, G, B
Наиболее распространенным методом среди методов замены в пространственной области является метод замены наименее значащего бита (НЗБ, LSB –Least Significant Bit).
Младший значащий бит изображения (приведены на рисунке 4.4) содержит в себе меньшее количество информации, чем любой другой бит. В большинстве случаев человек не может заметить изменений в этом бите. Фактически, НЗБ можно назвать шумом, и его можно использовать для внедрения информации путем замены наименее значащих битов пикселей изображения битами скрываемого сообщения. Для черно-белого изображения, в котором каждый пиксель закодирован одним байтом, объем встраиваемых данных может составить одну восьмую от общего объема контейнера. К примеру, в изображение размером 512x512 возможно поместить ~32 кБайт информации. Если же изменить два младших бита (что тоже почти незаметно), то пропускная способность увеличивается вдвое.
Рисунок 4.4 – Наименее значимые биты (белые) в формате RGB
Ниже на рисунке 4.5 изображена схема действия метода замены наименее значащего бита.
Рисунок 4.5 – Метод замены наименее значимого бита
Причина популярности этого метода объясняется его простотой, а также тем, с его помощью можно скрыть в относительно небольших файлах внушительные объемы информации (так как пропускная способность созданного скрытого канала связи составит при этом от 12,5 до 30%). Этот метод нередко работает с растровыми изображениями, которые представлены в формате без компрессии (например, GIF и BMP).
Метод НЗБ имеет низкую стеганографическую стойкость к атакам пассивного и активного нарушителей. Основной его недостаток– высокая чувствительность к искажениям контейнера. Для ослабления этой чувствительности часто дополнительно применяют помехоустойчивое кодирование.
AVIфайл без сжатия это идущие подряд изображения в формате bmp, поэтому данный метод, можно адаптировать и для видео в формате AVI.
-
Разработка программного комплекса
-
Выбор средств реализации
Для реализации программы стеганографического сокрытия данных в видеофайлах формата AVI был выбран язык программирования C#, среда разработки VisualStudio 2013, графический интерфейс WindowsForms и платформа .NET Framework4.5.
-
Описание классов программы
В процессе реализации программного комплекса было создано восемь классов:
-
FormMain;
-
FormatAVI;
-
AVI_Video_Stream;
-
EditVideoClass;
-
Abstract_WriteStream;
-
LSB_MethodClass;
-
VideoFileClass;
-
RGB_Bits.
Классы, созданные при реализации программы можно объединить в пять групп:
-
встраивание и извлечение цифрового водяного знака;
-
описание формата;
-
интерфейс программы;
-
обработка видеопотоков;
-
вспомогательные классы.
В группу «интерфейс программы» входит класс:
-
FormMain.
В группу «описание формата» входит класс:
-
FormatAVI.
В группу «обработка видеопотоков» входят классы:
-
AVI_Video_Stream;
-
EditVideoClass.
В группу «вспомогательные классы» входят классы:
-
Abstract_WriteStream;
-
VideoFileClass.
В группу «встраивание и извлечение цифрового водяного знака» входят классы:
-
LSB_MethodClass;
-
RGB_Bits.
-
Руководство пользователя и интерфейс программы
При запуске приложения открывается окно программы (рисунок 4.6).
Рисунок 4.6 – Окно программы