可信JPEG XR图像采集研究与实现

2012-03-15 14:31陈自刚朱海华
关键词:宏块编解码码流

陈自刚, 朱海华

(1.南阳理工学院计算机与信息工程学院,河南南阳 473004;2.南阳师范学院计算机与信息技术学院,河南南阳 473061)

由于数字图像信息的修改已变得非常容易, 因此数字图像的可信性常受到怀疑。如何使数字图像信息可信是目前研究的热点。JPEG XR标准采用许多先进的图像压缩技术,具有可逆的变换算法,并且无损压缩和有损压缩采用同一种算法,其编解码过程占用的内存很小,采用全整数运算,有效降低了计算复杂度,使得JPEG XR较易于嵌入式实现。JPEG XR码流结构便于提取基于图像内容的二值特征信息,便于在JPEG XR图像中引入半脆弱水印技术实现图像的鲁棒性认证和内容认证,而GPS(Global Positioning System)全球定位系统能给出准确的定位信息和时间信息,这些都为构造可信JPEG XR图像采集系统提供了有力保证。

1 硬件设计

Samsung公司推出的ARM芯片S3C2410A内部结构复杂、功能强大[1]。S3C2410A芯片基于16/32位ARM920T内核,采用5级流水线和哈佛结构,提供1.1 MIPS/MHz的性能,是高性能和低功耗的硬宏单元,具有独立的16 KB指令缓存和16 KB数据缓存;支持USB HOST模式和4通道DMA模式,并支持TFT彩色显示屏最大虚拟屏大小4 M字节,64 K色彩模式下最大的虚拟屏为2 048×1 024,拥有基于DMA模式或者中断模式工作的3通道的通用异步接收/发送装置(UART)。存储管理器(MMU)支持大/小端模式,有8个存储器Bank,每个Bank支持寻址128 MB,共计能寻址1 GB。

UBX-G6010-NT[2]是u-blox最小的GPS芯片,采用了高性能的u-blox 6定位引擎。UBXG6010-NT的辅助GPS(A-GPS)服务通过无线网络或互联网向GPS接收机提供卫星数据,如星历、年历、精确时间及卫星状态,以缩短定位计算时间。即使在不利的信号条件下,辅助数据也能使GPS接收机在数秒内计算出位置。在被屏蔽的环境中(如室内和车库)或存在GPS干扰信号时,可通过LEON-G模块的Cell LocateTM(基于基站的定位技术)对GPS接收机数据进行补充[3]。可信图像采集系统硬件设计如图1所示。

图1 可信图像采集系统硬件框架

尽管S3C2410A具有8通道的多路复用10位的A/D转换器,最大支持500 KSPS。但是结合CCD进行图像的采集与A/D转换,不能达到高清图像要求,所以借助CMOS技术实现图像采集并传输至USB接口。

系统加电时,以外部中断方式向S3C2410A的中断控制器发送“图像采集”中断请求,调用基于USB接口的图像采集中断服务程序,启动CMOS进行图像采集。同时启动DMA传输,实现通过内部AHB总线将图像数据传送至SRAM存储器中的缓冲区。DMA传输结束时向中断控制器发送中断请求(INT-DMA0),ARM920T内核调用显示中断服务程序将图像回显在TFT屏幕上。系统加电时,UBX-G6010-NT启动,借助于UART串行接口将定位信息和时间信息送至显示缓冲区的指定位置(即显示在屏幕指定位置),如果在被屏蔽的环境中或存在GPS干扰信号而无法定位时,由LEON-G模块的Cell LocateTM进行定位并送至UBX-G6010-NT,最终通过UART串行接口传送至指定位置,这样就得到了拥有定位信息和时间信息的原始图像。GPS定位信息和时间信息是可信图像采集系统的一个必备条件。

2 基于JPEG XR的半脆弱水印技术

JPEG XR图像中引入半脆弱水印技术的目的是实现JPEG XR图像的鲁棒性认证和内容认证。JPEG XR图像的内部有多个色彩通道,其中第1个通道是亮度通道。一幅JPEG XR图像在水平方向和垂直方向上可以含有1~4 096列分割块。每个分割块大小均相同,是一个二维的相邻宏块的集合。每个宏块由4×4块构成,每个块由4×4采样点构成[4-5]。

JPEG XR图像的频率模式码流结构以分割块为基本单位,每个分割块中包含DC、LP(低通)、HP(高通)和弹性位4个系数包。每个分割块的DC系数和LP系数包含了图像的主要能量信息[6],只需提取每个分割块的DC系数和LP系数就能得到图像的特征信息,使得实现基于图像内容的半脆弱水印变得比较方便,不用对原JPEG XR图像进行任何分割和处理。

2.1 JPEG XR图像嵌入水印过程

含半脆弱水印的JPEG XR图像形成过程主要包括构造基于图像内容的二值水印信息、水印信息置乱[7]和嵌入水印等过程。JPEG XR图像嵌入水印过程框图如图2所示。

图2 JPEG XR图像嵌入水印过程框图

2.2 基于JPEG XR图像的二值水印

JPEG XR图像的频率模式码流结构以分割块为基本单位。每16×16像素的宏块在第1次变换时就能产生一个本宏块内容的4×4像素的二值水印信息,对每个分割块依次处理就能得到基于图像内容的二值水印信息。这里对DC系数和LP系数分开处理提取和构造图像特征。

定义如下:

其中,i为图像的第i个分割块;j为第i个分割块的第j个宏块;k为第j个宏块在第1次LBT变换后的第k个LP系数。k=0时,只计算第i个分割块的DC系数;1≤k≤15时,还要计算第j个宏块在第1次LBT变换后的LP系数。

α为分割块的DC系数阈值,α取每个分割块的所有DC系数的平均值。

β为分割块的LP系数阈值,β取每个分割块的所有LP系数的平均值。

基于M×N的JPEGXR图像,由(1)式和(2)式构造基于DC系数和LP系数提取的1/4×M ×1/4×N的二值水印矩阵。

2.3 半脆弱水印的嵌入

JPEG XR编解码算法[8]支持多种外部图像格式,但JPEG XR内部只支持Y(YUV中的Y)、YUV4∶2∶0、YUV4∶2∶2、YUV4∶4∶4、n通道和YUVK等6种图像格式,由此可知Y分量是不可或缺的。

半脆弱水印嵌入过程如下:

(1)将JPEG XR码流解码至色彩变换阶段后、LBT变换前(如图2所示),此时能得到JPEG XR 6种内部像素支持格式中的某一种。

(2)根据置乱后的二值水印点的位置从映射关系找到解码后图像对应像素点(位置);由(1)式和(2)式共同构建M′×N′像素的二值水印时,其对应的位置关系是{(M,N)|M=4 M′且N=4 N′}。

(3)提取该像素点的色彩空间的Y分量值。

(4)将该像素点的Y分量值的最低有效位替换为二值水印点的值。

(5)按照JPEG XR编码过程重新进行LBT变换,最终生成含有二值水印的JPEG XR码流。

2.4 半脆弱水印提取与比较

在对JPEG XR图像认证时,首先从JPEG XR图像中提取基于图像内容的二值水印信息,与重新构造的该图像相应位置的二值图像信息进行比较。如果两者一致,则说明图像未被篡改;如果两者不一致,则说明图像已被篡改,根据位置关系就能发现哪个(些)宏块或者块被篡改,即对篡改处进行定位,如图3所示。

水印提取与比较过程如下:

(1)将JPEG XR码流解码至色彩变换阶段后、LBT变换前(如图2所示),此时能得到JPEG XR 6种内部像素支持格式中的某一种。

(2)找到每个块(或者宏块)含有二值水印的像素点;由(1)式和(2)式共同构建二值水印时,隐藏二值水印的像素点为:

{(M,N)|M mod 4=0且N mod 4=0}。

(3)提取该像素点的Y分量值。

(4)根据该像素点的Y分量值的最低有效位获取水印点的二值。

(5)提取隐藏在该图像中的置乱了的二值水印信息。

(6)对二值水印信息反置乱,获取嵌入在JPEG XR图像中的水印。

(7)与由该图像频率模式码流中的DC系数包和低通系数包重新构造的二值图像特征信息进行比较,发现是否有篡改,如果有篡改则定位。

图3 半脆弱水印提取定位框图

3 算法移植

3.1 算法移植流程

如果只是进行程序代码移植,则具有半脆弱水印技术的JPEG XR编解码器执行效率不高,因此根据如前所述的关于半脆弱水印技术的设计方案,对JPEG XR编解码器简化,并结合S3C2410A特点进行定制。具体的流程如图4所示。

图4 实现流程

首先分析JPEG XR编解码器,根据S3C2410A系统自身特征,进行编解码调整。数据类型调整为32位有符号整数,实现外部的RGB888到内部图像的分量变换和比特深度变换。鉴于半脆弱水印算法是基于JPEG XR码流的频率模式构造的,可以对空间模式及其函数进行简化。在内存空间建立不同的多块区域以存储外部图像缓冲信息和不同编解码阶段的缓冲信息,并进行相应的分配,从而使得JPEG XR编解码器在移植过程中减少误差,满足实际的JPEG XR编解码要求。

然后构建ARM-Linux交叉编译工具(因为JPEG XR编解码器使用Glibc库,所以构建ARM-Linux而非ARM-Elf交叉编译工具),为了提高JPEG XR编解码和半脆弱水印算法的效率,构建目标机为S3C2410A的交叉编译工具,编译生成适合于S3C2410A工作在ARM状态的32位字对齐的ARM指令,并进行汇编级别的优化。S3C2410A采用5级流水线结构,通过调整指令顺序或者插入wait时钟周期,避免相邻指令对寄存器或者存储器等结构相关的对象进行操作,避免数据相关或因循环或者转移而产生的控制相关,从而提高流水线的性能。S3C2410A拥有16个32位的寄存器,汇编过程中合理高效地利用这些寄存器,可以提高编解码效率。S3C2410A拥有16 KB指令缓存,合理组织代码在存储器的存放位置,可以提高CACHE命中率。

最后将具有半脆弱水印技术的JPEG XR编解码算法移植到S3C2410A上,并测试可信JPEG XR图像采集过程与显示过程。

3.2 数据块定义与存储器分配

S3C2410A的存储控制器提供了访问外部存储器所需要的控制信号。通过总线控制器OM[1∶0]设定为10,使得总线工作在32 bit的总线宽度,且工作在32位模式时对基本字长32位字按照小端方式存储。数据块定义见表1所列。存储器分配如下:表1中的“代码”存放在Bank0-ROM,表1中的其他数据块存放在Bank1-SRAM。

用4片128 K×8的EPROM存储器芯片采用位扩展形式构造128 K×32的ROM存储体。用2片128 K×16的SRAM存储器芯片为一组采用位扩展形式构造128 K×32的SRAM存储体,多组128 K×32的SRAM存储体采用字扩展形式构造更大的32位SRAM存储体。采用多体交叉存取技术,可以有效地提高总线利用率,从而提高存储器的存取速度。

分析JPEG XR编解码算法发现,在编解码的任意阶段只需要很少的缓存空间来存放数据(在这里使用S3C2410A内的16 KB的数据高速缓存),并且所有的操作都能SIMD(Single Instruction Multiple Data,单指令多数据流)指令化。

表1 数据块定义

3.3 GPS模块的数据结构定义

GPS芯片UBX-G6010-NT有1个UART、1个USB V2.0(全速12 Mb/s)、1个DDC和1个SPI等不同的串行接口。这里设计用UART与S3C2410A的串口1相连接,且波特率为115 200波特。数据结构定义如下[9]:

4 测 试

本实验测试时使用的是S3C2410A开发板,结合USB接口的CMOS摄像头模块和串口的GPS模块,借鉴现成的程序代码,移植具有半脆弱水印技术的JPEG XR编解码算法,实现640×480(鉴于3.5寸显示屏最高支持640×480的分辨率)的图像采集,GPS时间信息显示在图像右上角,GPS定位信息显示在图像右下角。在TFT真彩LCD上动态显示摄像头捕捉到的图像,如图5所示。

图5 JPEG XR图像采集

半脆弱水印技术实验图像为图5中截取的256×256×8的亮度通道,如图6a所示。半脆弱水印图像使用提取既有DC系数又有LP系数的64×64的二值水印信息,如图6b所示。对图像进行篡改,如图6c所示。提取水印图像中的64×64的二值水印信息,与水印图像的特征信息对比,进行篡改定位,如图6d所示。

图6 半脆弱水印测试

目前支持JPEG XR的图像处理软件较少,以上JPEG XR图像显示是在PC中安装JPEG XR reference software v1.6后的Xnviewv1.98.5f软件完成的。

实验中采用峰值信噪比(PSNR)来评价嵌入水印(由DC系数和LP系数构建二值水印)后图像的质量,并用相关系数(NC)来评价提取出的水印图像和原水印图像的相似性。几种常见攻击操作下的实验结果见表2所列,其中的剪切实验结果是基于图6c的篡改剪切而计算的。

表2 4种攻击方式下的实验结果

将定制优化前后的含有半脆弱水印技术的JPEG XR编解码算法交叉编译后生成的JPEG XR.EXE,移植到S3C2410A上编码256×256× 8的图像(如图6a)的时间对比,见表3所列,其定制优化后的运行时间明显降低。

表3 time命令测试的定制优化前后运行时间 ms

5 结束语

本文研究由CMOS采集原始图像,借助GPS全球定位系统获取定位信息和时间信息,添加在该图像合适位置,将半脆弱水印技术引入JPEG XR图像中。在S3C2410A上移植定制并优化的JPEG XR编解码算法和半脆弱水印算法,解决这一图像标准的完整性和有效性的保护问题,提高JPEG XR数字图像的可信性,也有助于推动这一新图像标准的推广和应用。

[1] Samsung Electronics.S3C2410A 200 MHz &266 MHz 32-BIT RISC microprocessor user’s manual,Revision 1.0[EB/OL].(2004-03-01)[2011-05-18].http://www.samsung.com/Products/Semiconductor/.

[2] U-blox.UBX-G6010-NT product summary[EB/OL].[2011-09-01].http://www.u-blox.com/images/downloads/Product-Docs/UBX-G6010-NT_ProductSummary-%28GPS.G6-HW-10007%29.pdf.

[3] Marshall C,Fenger C,Moioli S.Hybrid positioning and Cell LocateTM[EB/OL].(2011-07-01)[2011-09-01].http://www.u-blox.com/images/downloads/Product-Docs/Cell Locate-whitepaper-%28GSM-X-11001%29. pdf.

[4] ISO/IEC CD 29199-2:2010,JPEG XR Image Coding System,Part 2:Image Coding Specification[S].

[5] ISO/IEC CD 29199-3:2010,JPEG XR Image Coding System,Part 3:Motion JPEG XR[S].

[6] 孙见青,汪荣贵,李守毅.基于DC分量和AC分量相结合的数字水印技术[J].合肥工业大学学报:自然科学版,2007,30(7):825-828.

[7] 林爱英,吴莉莉,苏 金,等.一种用哈达玛矩阵进行置乱变换的盲水印算法[J].合肥工业大学学报:自然科学版,2010,33(9):1351-1354.

[8] ISO/IEC FCD 29199-5:2010,JPEG XR Image Coding System,Part 5:Reference Software[S].

[9] 张洋溢,王 忠.基于ARM的GPS/GPRS多功能手持终端的设计与实现[J].计算机测量与控制,2011,19(12):3050-3053.

猜你喜欢
宏块编解码码流
数字电视TS码流协议简要分析
1553B总线控制器编解码设计
为多重编解码世界做好准备
大型民机试飞遥测视频编解码方法研究
基于选择特征宏块的快速视频稳像
一种比较ASN.1码流差异的方法
基于梯度的CCSDS压缩码流控制算法研究
2G/3G网络IP化语音编解码协商策略部署研究
IRD对TS流的处理
基于宏块合并的H.264模式选择算法