Реферат Отчет с., главы, 22 рис., табл., 16 источников, прил видео стеганография, стеганография mpeg, сокрытие информации в видео, встраивание и извлечение информации, дискретное косинусное преобразование, помехоустойчивое кодирование, циклические


Преобразование извлечённых данных



Скачать 318.15 Kb.
страница8/8
Дата01.12.2017
Размер318.15 Kb.
#655
ТипРеферат
1   2   3   4   5   6   7   8

Преобразование извлечённых данных


По завершению процесса извлечения необходимо декодировать данные и исправить возможные ошибки:

  1. Для двоичного циклического -кода, использованного при встраивании информации, строится таблица символов (гл. 1.2.1.2).

  2. Битовая последовательность, полученная на предыдущем шаге извлечения данных, делится на отрезки (кодовые слова) длины .

  3. Для каждого кодового слова проверяется синдром ошибки, и если ошибка присутствует, то она исправляется (гл. 1.2.1.3).

  4. Декодированные информационные слова длины соединяются в битовую последовательность.

  5. Битовая последовательность преобразуется в формат исходных данных.


  1. Программная реализация

    1. Выбор средств реализации


Для реализации программы стеганографического сокрытия данных в видеофайлах формата MPEG был выбран язык программирования C#, среда разработки Visual Studio 2010, графического интерфейс Windows Forms и платформа .NET Framework 3.5. Для кодирования и декодирования видео в формате MPEG-4 используется библиотека «AForge.Video.FFMPEG» [2].
    1. Описание библиотеки AForge.Video.FFMPEG


Библиотека AForge.Video.FFMPEG предоставляет доступ к классам для покадрового чтения и записи видеофайлов. При реализации программы использовались два класса из данной библиотеки: VideoFileReader и VideoFileWriter.

Класс VideoFileReader позволяет считывать основную информацию о видео (используемый кодек, количество кадров, размеры видео) и в режиме потокового чтения декодировать видео, получая видеокадры.

Класс VideoFileWriter позволяет покадрово записывать видеофайлы, используя различные кодеки, в том числе и MPEG-4.

Основное преимущество данной библиотеки состоит в том, что она основана на библиотеке FFMPEG, которая содержит реализацию большого количества кодеков. Поэтому для использования данной библиотеки не требуется установка кодеков.


    1. Описание классов программы


В программе присутствуют шесть групп классов (рис. 3.1).

c:\users\mo3r\desktop\вкр\картинки\classdiagram.png

Рисунок 3.1. Группы классов программы

Классы, связанные с обработкой видео:



  1. VideoTranscoder.cs

Содержит методы для открытия и транскодирования видео, а также для встраивания и извлечения информации из видеофайлов.

  1. VideoInfo.cs

Используется для хранения и передачи основных видео параметров между методами.

Классы, связанные со встраиванием и извлечением информации:



  1. Stego.cs

Содержит методы встраивания и извлечения информации из видеокадров.

  1. StegoPrivateData.cs

Используется для хранения и передачи информации о встраивании и извлечении между методами.

Классы, связанные с помехоустойчивым кодированием:



  1. CyclicCode.cs

Содержит информацию о параметрах двоичного циклического кода.

  1. Coder.cs

Используется для кодирования и декодирования с помощью двоичных циклических кодов.

  1. Binary.cs

Cодержит вспомогательные методы для работы с бинарными числами.

Классы основных окон программы:



  1. FormMain.cs

Главное окно программы.

  1. FormEmbedding.cs

Окно встраивания информации.

  1. FormAnalysis.cs

Окно сравнения информации (пост анализа).

  1. FormCompareFrames.cs

Окно сравнения кадров.

  1. FormTranscoding.cs

Окно транскодирования видео.

  1. FormExtarcting.cs

Окно извлечения информации.

  1. FormExtractedData.cs

Окно для отображения извлечённой информации.

  1. ProcessDialog.cs

Окно обработки информации.

Вспомогательные классы:



  1. BitStream.cs

Класс битовой последовательности.

  1. Cancellation.cs

Содержит токен отмены, который передаётся в другой поток.

  1. TabControlNoHeaders.cs

Класс, унаследованный от класса TabControl. Содержит отключённые заголовки страниц.

Классы преобразований:



  1. CosineTransform.cs

Содержит методы ДКП и обратного ДКП.

  1. ImageTrasnformer.cs

Содержит методы преобразований из цветового пространства в и из в , а также методы преобразований изображений в байтовый массив и обратно.

  1. YCbCr.cs

Структура, содержащая значения цветового пространства .
    1. Окно программы


В главном окне программы (рис. 3.2) пользователю отображаются основные данные об открытом видеофайле и его превью. В разделе меню «Файл» предоставляются возможность открыть видеофайл и выйти из программы. В разделе меню «Видео» пользователь может транскодировать видеофайл в формат MPEG-4, встроить информацию в видеофайл и извлечь информацию из видеофайла. В разделе меню «О программе» отображается основная информация о программе.



Рисунок 3.2. Основное окно программы.
    1. Реализация дискретного косинусного преобразования


ДКП и обратное ДКП реализованы в классе CosineTransform с помощью формул (1.4) и (1.5). Эти формулы содержат большое количество умножений, и прямая их реализация сильно скажется на производительности работы программы. Однако можно заметить, что в данных формулах часть остаётся прежней при преобразовании матриц, меняются лишь данные преобразуемых матриц. Поэтому для увеличения производительности программы было решено просчитывать эти части формул заранее в кэш массив (рис. 3.3-3.4), чтобы впоследствии при преобразовании обращаться к этим значениям (рис. 3.5-3.6). Также для увеличения производительности используются одномерные массивы вместо двумерных, что значительно повышает скорость доступа к элементам массива.

c:\users\mo3r\desktop\вкр\картинки\dct.png

Рисунок 3.3. Генерация кэш массива для ДКП

c:\users\mo3r\desktop\вкр\картинки\idct.png

Рисунок 3.4. Генерация кэш массива для обратного ДКП

c:\users\mo3r\desktop\вкр\картинки\dctm.png

Рисунок 3.5. Вычисление ДКП

c:\users\mo3r\desktop\вкр\картинки\idctm.png

Рисунок 3.6. Вычисление обратного ДКП
    1. Реализация помехоустойчивого кодирования


Для реализации помехоустойчивого кодирования использовались двоичные циклические коды. Их реализация состоит из трёх классов: CyclicCode, Binary и Coder.

Класс CyclicCode используется для обозначения определенного двоичного циклического -кода с порождающим многочленом . В данной работе используются три типа кода:



  • (3,1)-код с порождающим многочленом (Код Хэмминга)

Код позволяет исправлять одну ошибку в кодовом слове.

  • (7,4)-код с порождающим многочленом (Код Хэмминга)

Код позволяет исправлять одну ошибку в кодовом слове. Однако избыточность данного кода меньше, слова из четырёх бит преобразуются в слова из семи бит.

  • (23,12)-код с порождающим многочленом (Код Голея)

Код позволяет исправлять три ошибки в кодовом слове.

Класс Binary содержит вспомогательные методы, используемые классом Coder, такие как циклический сдвиг кодового слова и вычисление остатка по алгоритму деления Евклида, описанный в пункте 1.2.1.1.

Класс Coder предоставляет возможность кодирования и декодирования двоичными циклическими кодами. Он реализует метод генерации таблицы синдромов, описанной в пункте 1.2.1.2, методы кодирования и декодирования отдельного слова (рис. 3.7-3.8), и методы кодирования и декодирования байтовой последовательности.

c:\users\mo3r\desktop\вкр\картинки\encode.png

Рисунок 3.7. Кодирование информационного слова в кодовое

c:\users\mo3r\desktop\вкр\картинки\decode.png

Рисунок 3.8. Декодирование кодового слова в информационное

    1. Реализация встраивания


Перед встраиванием пользователь вводит необходимую информацию и выбирает различные параметры встраивания в окне встраивания FormEmbedding.cs (рис. 3.9). Окно состоит из нескольких страниц, которые реализованы с помощью элемента TabControl. Однако у элемента TabControl нельзя отключить убрать заголовки страниц, поэтому был создан класс TabControlNoHeaders.cs с отключёнными заголовками, который наследуется от класса TabControl.



Рисунок 3.9. Три шага встраивания информации.

Встраивание происходит по следующим шагам:



  1. Введённый пользователем секретный текст преобразуется в последовательность байт с помощью метода Encoding.Unicode.GetBytes.

  2. Байтовой последовательность кодируется помехоустойчивым кодом с помощью метода Coder.EncodeFull.

  3. Байтовая последовательность преобразуется в битовую с помощью класса BitStream и сохраняется в объекте класса StegoPrivateData вместе с выбранным пользователем уровнем шума и размером блока.

  4. Объект класса StegoPrivateData передаётся в метод VideoTranscoder.EmbedData через класс ProcessDialog. В этом методе начинается покадровое чтение видео, где для каждого кадра вызывается метод Stego.EmbedData.

  5. В методе Stego.EmbedData кадр преобразуется в  цветовое  пространство с помощью метода ImageTransformer.ConvertToRgb.

  6. Из кадра в цветовом пространстве поочередно с помощью метода ImageTransformer.GetRectFromData выделяются блоки компоненты яркости одинакового размера, который был указан пользователем на шаге 1.

  7. К каждому блоку применяется ДКП, которое реализовано в методе CosineTransform.GetDCT.

  8. Из объекта битовой последовательности класса BitStream с помощью метода GetNext выбирается бит и встраивается в самый высокочастотный коэффициент матрицы ДКП (2.1).

  9. Каждый блок преобразуется с помощью обратного ДКП, которое реализовано в методе CosineTransform.GetIDCT.

  10. Видеокадр преобразуется из цветового пространства в с помощью класса ImageTransformer.ConvertToYcbcr.

  11. Полученный кадр записывается в стего видео файл в методе VideoTranscoder.EmbedData.
    1. Реализация извлечения


В окне извлечения FormExtracting.cs (рис. 3.10) пользователь указывает параметры извлечения и длину сообщения, которая указывается в окне встраивания на третьем шаге.



Рисунок 3.10. Окно извлечения информации

Извлечение происходит по следующим шагам:



  1. Параметры извлечения передаются в объекте класса StegoPrivateData в метод VideoTranscoder.ExtractData через класс ProcessDialog. В этом методе начинается покадровое чтение видео, где для каждого кадра вызывается метод Stego.ExtractData.

  2. В методе Stego.ExtractData кадр преобразуется в  цветовое  пространство с помощью метода ImageTransformer.ConvertToRgb.

  3. Из кадра в цветовом пространстве поочередно с помощью метода ImageTransformer.GetRectFromData выделяются блоки компоненты яркости одинакового размера, который был указан пользователем на шаге 1.

  4. К каждому блоку применяется ДКП, которое реализовано в методе CosineTransform.GetDCT.

  5. Встроенный бит извлекается из самого высокочастотного коэффициента матрицы ДКП (2.2) и заносится в объект битовой последовательности BitStream c помощью метода SetNext.

  6. Битовая последовательность декодируется помехоустойчивым кодом с помощью метода Coder.DecodeFull.

  7. Полученная байтовая последовательность преобразуется в текст с помощью метода Encoding.Unicode.GetBytes.


Заключение


В результате данной работы, были выполнены следующие задачи:

  1. Изучены материалы по кодированию MPEG видео: структуре формата MPEG и модели сжатия;

  2. Изучены стеганографические подходы к сокрытию информации в видео контейнерах и используемые ими алгоритмы и модели;

  3. Выбран стеганографический подход для реализации;

  4. Выбраны технологии и средства реализации;

  5. Разработана программа для встраивания информации в видеофайл в формате MPEG и извлечения информации из видеофайла в формате MPEG c использованием выбранного метода;

  6. Разработана техническая документация согласно техническому заданию;

  7. Программа протестирована на соответствие требованиям.

Результатом работы является программа стеганографического сокрытия информации в видеофайлах формата MPEG. В программе реализовано встраивание текстовой информации и изображений в видеофайлы формата MPEG и извлечение встроенной информации из видеофайлов в формате MPEG. В основе метода встраивания лежит метод дискретного косинусного преобразования. Для увеличения устойчивости встроенных данных использовалось помехоустойчивое кодирование двоичными циклическими кодами.

Программа может использоваться для передачи секретных данных на электронных носителях и по каналам связи.



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

Список использованных источников


  1. Blackledge, J. Resilient Digital Image Watermarking for Document Authentication / J. Blackledge, O. Iakovenko // IAENG International Journal of Computer Science. – 2014. – № 41(1). – С. 1-17.

  2. Codeplex. [Электронный ресурс]: AForge.Net Framework, Video.FFMPEG. – Электрон. дан. – Режим доступа: http://aforgeffmpeg.codeplex.com, свободный. (дата обращения: 26.05.14).

  3. Hamilton, E. JPEG File Interchange Format [Электронный ресурс]: Version 1.02 / Hamilton E. – Электрон. текст. дан. – Milpitas, CA: C-Cube Microsystems, 1992 – Режим доступа: http://www.jpeg.org/public/jfif.pdf, свободный. (дата обращения: 28.04.14).

  4. Hartung, F. Watermarking of Uncompressed and Compressed Video / F. Hartung, B. Girod // Signal Processing. – 1998. – № 66(3). – С. 283-301.

  5. Ishtiaq, M. Robust and imperceptible watermarking of video streams for low power devices. / M. Ishtiaq, M. A. Jaffar, M. A. Khan, Z. Jan, A. M. Mirza. // Signal Processing, Image Processing and Pattern Recognition: International Conference, SIP 2009, Held as Part of the Future Generation Information Technology Conference, FGIT 2009, Jeju Island, Korea, December 10-12, 2009. Proceedings / D. Ślęzak, B. -H. Kang, T. Kim, H. Kuroda, S. K. Pal, J. Gu. – Berlin: Springer-Verlag Berlin Heidelberg. – C. 177-184.

  6. Liu, Y. A robust data hiding algorithm for H.264/AVC video streams / Y. Liu, Z. Li, X. Ma, J. Liu // Journal of Systems and Software. – 2013. – № 86(8). – С. 2174-2183.

  7. Lu, C. -S. Multimedia security: Steganography and digital watermarking techniques for protection of intellectual property / C. -S. Lu. – Hershey: Idea Group Publishing, 2005. – 255 c.

  8. Masoumi, M. A blind scene-based watermarking for video copyright protection / M. Masoumi, S. Amiri // AEU - International Journal of Electronics and Communications. – 2013. – № 67(6). – С. 528-535.

  9. Mobasseri, B. G. Lossless watermarking of compressed media using reversibly decodable packets / B. G. Mobasseri, D. Cinalli // Signal Processing. – 2006. – № 86(5). – С. 951-961.

  10. Singh, H. V. Robust copyright marking using Weibull distribution / H. V. Singh, S. Rai, A. Mohan, S. P. Singh // Computers & Electrical Engineering. – 2011. – № 37(5). – С. 714-728.

  11. Su, Y. A video steganalytic algorithm against motion-vector-based steganography / Y. Su, C. Zhang, C. Zhang // Signal Processing. – 2011. – № 91(8). – С. 1901-1909.

  12. Swanson, M. D. Multimedia Data-Embedding and Watermarking Technologies / M. D. Swanson, M. Kobayashi, A. H. Tewfik // Proceedings of the IEEE. – 1998. – № 86(6). – С. 1064-1087.

  13. Usman, I. BCH coding and intelligent watermark embedding: Employing both frequency and strength selection / I. Usman, A. Khan // Applied Soft Computing. – 2010. – № 10(1). – С. 332-343.

  14. Xu, D. A novel watermarking scheme for H.264/AVC video authentication / D. Xu, R. Wang, J. Wang // Signal Processing: Image Communication. – 2011. – № 26(6). – С. 267-279.

  15. Вернер, М. Основы кодирования: Учебник для ВУЗов / М. Вернер; пер. с нем. Д. К. Зигангирова. – Москва: Техносфера, 2004. – 288 с. – (Мир программирования).

  16. Ричардсон, Я. Видеокодирование H.264 и MPEG-4 – стандарты нового поколения / Я. Ричардсон; пер. с англ. В. В. Чепыжова. – Москва: Техносфера, 2005. – 368 с. – (Мир цифровой обработки).

Каталог: data -> 2014
2014 -> Становление футбольного клуба как бренда на примере фк
2014 -> Проблемы и перспективы взаимодействия Европейского Союза и России по урегулированию локальных кризисов
2014 -> Факторы формирования российского и американского экспорта вооружений в начале XXI века
2014 -> Памятка студентам бакалавриата «Куда обращаться?»
2014 -> «Восприятие института монархической власти в Великобритании, России и в Японии»
2014 -> Программа краткосрочного повышения квалификации работников ниу вшэ
2014 -> Практики краудсорсинга в прикладных социальных исследованиях

Скачать 318.15 Kb.

Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8




База данных защищена авторским правом ©vossta.ru 2022
обратиться к администрации

    Главная страница