设置主页 加入收藏 保存到桌面
当前位置首页论文计算机论文基于H.264视频信息隐藏功能的设计与实现之计算机论文

基于H.264视频信息隐藏功能的设计与实现之计算机论文

证道长生围观:℉更新时间:2021-12-18 13:36:35

基于H.264视频信息隐藏功能的设计与实现之计算机论文

这是一篇计算机论文,本文基于 Sipdroid 音视频通话软件,对该软件进行功能模块分析,在此基础上对本文要实现的视频信息隐藏功能进行整体需求分析,包括要实现的嵌入和提取模块中界面的分析与设计。然后分析视频编解码库(x264、FFmpeg),确定隐藏信息具体的嵌入和提取位置。

1 绪论

1.1 研究背景及意义

近年来,信息和网络通信的发展极其迅速,给人们传播和获取信息带来了极大便利。但是便捷的网络通信也给信息的安全传输带来巨大挑战,如何保证信息在网络中能够安全传输受到人们越来越多的关注。传统的加密技术是把要传输的信息转化为看起来没有意义的密文。虽然对信息进行加密可以保证信息本身的安全,但是攻击者能明显地注意到有秘密信息的存在,这在一定程度上增加了信息被破坏的风险。同时,随着计算机硬件技术和云计算技术的飞速发展,加密算法被破解的几率也越来越大。因此,仅仅依靠加密技术已经不能保证网络信息安全传输。为了顺应新的趋势,信息隐藏(Information Hiding)技术应运而生。信息隐藏的概念可以定义为将秘密信息隐藏于另一公开载体中,实现隐蔽通信或隐蔽标志。信息隐藏弥补了加密技术的不足,隐藏了秘密信息的存在。

传统的信息隐藏一般将秘密信息嵌入到图像、音频、文本等数字多媒体及网络传输协议等载体中。随着网络通信和视频编解码技术的进步,视频已经成为网络上最主要的流媒体之一。视频本身数据量大、结构复杂的特点使其成为信息隐藏的最佳载体之一,因此基于视频信息隐藏的研究也越来越广泛。视频数据是先经过压缩再进行传输的,H.264 协议是目前市面上使用广泛的压缩标准,比如常用的视频通话、观看的影视资源和时下火热的网络直播等都采用了 H.264 协议。相比于相比于 H.263 和 MPEG-2 等视频编解码协议,H.264 标准具有更高的视频质量和更高效的编码效率。因此基于 H.264 协议的视频信息隐藏技术已成为信息隐藏领域的一个研究热点。

.......................

1.2 国内外研究现状

随着视频编解码技术的不断优化,涌现出了各种针对视频载体的信息隐藏方法。依照视频载体自身的嵌入特点,视频信息隐藏技术可按隐藏信息嵌入位置进行分类。基于空域的是在视频编码之前的原始图像的码流中进行嵌入,这里称为前置嵌入;在视频编码过程中嵌入隐藏信息称为内置嵌入;而在视频压缩编码之后嵌入隐藏信息称为后置嵌入。图 1-1 为视频信息隐藏算法分类:

(1)前置嵌入

前置式信息隐藏算法是在原始视频图像压缩编码之前实现秘密信息的嵌入,完成信息隐藏。基于原始图像的信息隐藏算法最典型的是 Turner 提出的LSB 算法,该算法是通过找原始载体信号中最不重要的一位将其替换为隐藏信息的比特数据,然后再对修改过后的数据进行编码,最终实现信息隐藏。文献基于空域利用连续的视频帧图像的空间相关性,直接将隐藏信息嵌入在原始数据中。该算法虽然实现复杂度较低,但是鲁棒性较差。为提高鲁棒性人们将目标放在了编码前的变换域中,通过 DCT 系数进行嵌入隐藏信息。文献首先获取原始视频数据并对所有视频帧进行处理,通过对视频图像像素矩阵DCT 变换、量化,选取低频 DCT 系数进行嵌入,嵌入后把视频帧进行 DCT 逆变换并取代原始图像帧。该算法只适用于高比特率视频,在低比特率视频中进行隐藏时有明显不足。文献[11-15]通过将隐藏信息嵌入到原始视频的 DCT 域或DWT 域中进行隐藏,然后再进行压缩编码,经过多次编码之后发送。接收端首先进行解码才能提取,在多次编解码的过程中可能会造成一些数据的丢失,并且这个过程比较繁琐,导致算法效率低。

...........................

2 H.264 视频压缩技术

2.1 H.264 概述

为了推进数字视频技术的市场化,并使各类视频编解码产品实现相互兼容,视频行业联盟、国际标准委员会规范制定推出了一系列视频标准。其中国际电信联盟(ITU-T)下属的视频编码专家组(Video Coding Expert Group,VCEG)制定的 H.26X 系列和国际标准化组织旗下的运动图像专家组(Motion Picture Expert Group,MPEG)制定的 MPEG 系列这两类最为通用[30]。这两类视频压缩编码标准的主要区别在于 MPEG 系列主要用于视频存储、视频广播和流媒体领域,而 H.26X 系列则适用于实时视频通信(会议电视、可视电话)。视频编码标准的发展历程如图 2-1 所示。H.264 是目前各大厂商广泛使用的高性能视频压缩协议,由上述两大视频开发机构共同成立的联合视频团队(oint Video Team,VT)发布的低比特率视频编解码器标准,同时也是 MPEG-4 第十部分。在相同视频图像质量下, H.264 协议算法压缩效率至少是是以前的标准的两倍。

........................

2.2 H.264 两层编码体系

在 H.263 等标准协议中按由大到小的顺序将视频码流结构定义为图像层(picture layer)、块组层(COB layer)、宏块层(macrobloc layer)和块层(bloc layer)四个层次。这些视频编解码标准从层次划分来看并没涉及网络传输的层级划分。而 H.264 标准为解决不同环境下的网络传输差异,把视频码流从功能上划分为视频编码层( Video Coding Layer , VCL )和网络提取层( Networ Abstraction Layer,NAL),H.264 功能层次设计如图 2-2 所示

VCL 层负责对视频数据进行压缩编码[32],包括多宏块划分模式估计、多参数帧估计和多模式运动估计等混编功能。编码后 VCL 视频数据被封装为了一系列的 NAL 单元。NAL 为 H.264 编码数据存储或传输的基本单元,每个 NAL 单元通常包含开始码、NAL 头部信息、RBSP 载荷数据三部分[33]。其中开始码用比特00 00 00 01;或00 00 01;代表编码单元的开始。原始字节序列负荷(RBSP,Raw Byte Sequence Payload)又包含视频编码数据和结尾比特。结尾比特包含一个比特1;和若干比特0;,以便字节对齐。NAL 单元规范了视频数据格式的统一,有利于网络协议的封装传输。..........................3 H.264 视频信息隐藏功能分析与设计 ............................ 17

3.1 整体需求分析..................... 173.2 界面分析与设计................ 184 H.264 视频信息隐藏功能的实现 ..................... 29

4.1 界面的实现...................... 294.1.1 用户界面............................... 29

4.1.2 通话界面.............................. 305 总结与展望............................ 49

5.1 总结.......................... 495.2 展望................... 50

4 H.264 视频信息隐藏功能的实现

4.1 界面的实现

android:entries 设置的内容是用户通过界面看到的内容android:entryValues 即保存在 preferences.xml 中的值。在 values/strings.xml 添加定义的属性信息和键值对:<!--隐藏算法字段 start-->

<string name=settings_hidden>信息隐藏算法设置</string><string-array name=hidden_display_values> <item>基于 DCT 系数信息隐藏算法</item> <item>基于运动矢量信息隐藏算法</item> <item>......</item>

</string-array><string-array name=hidden_values> <item>DCT</item> <item>MV</item> <item>others</item>

</string-array><!--隐藏算法字段 end-->

..........................

5 总结与展望

5.1 总结本文主要以实时视频为载体实现了基于 H.264 的视频信息隐藏功能,主要工作总结如下:首先通过对视频信息隐藏算法的研究总结,选择了两种基于 DCT 和运动矢量的信息隐藏算法来实现信息隐藏功能。对 x264 和 FFmpeg 视频编码库进行研究分析,找出信息隐藏的位置,并在编解码库中添加信息隐藏和提取算法。对Sipdroid 开源视频通话软件进行功能模块分析,在其中添加了信息隐藏模块对要实现的信息隐藏、信息提取功能进行分析与设计。在用户设置界面添加算法选择功能,在视频通话界面添加隐藏信息的发送和提取功能。然后对添加信息隐藏算法的 x264 和 FFmpeg 视频编码库进行编译,并由 Sipdroid 最终调用实现了基于 H.264 的视频信息隐藏功能。对实现的视频信息隐藏功能进行测试,结果对比分析可知在不影响视频主观质量的情况下,两种算法都实现了隐藏信息的传输,且基于 DCT 的视频信息隐藏算法有较大的隐藏容量,基于运动矢量的信息隐藏算法对于视频码率的影响小,用户可根据不同需要选择相应的隐藏算法。参考文献(略)