矢量量化编码

2024-05-05

矢量量化编码(精选八篇)

矢量量化编码 篇1

多媒体数据的数字化进程, 使得多媒体信息的存取和交换也变成了一个相对简单的过程。特别是随着Internet等信息网络的迅速发展, 借助于数码像机、扫描仪等数字化I/O设备, 人们可以方便地将各种多媒体数字信息传播到世界的各个角落。技术日益进步, 随之出现的问题也日益严重, 对数字多媒体产品的非法拷贝、 恶意篡改、破坏和散播屡见不鲜。因此, 如何在当前网络环境下提供有效的信息安全手段实现有效的版权保护已经成为一个迫在眉睫的现实问题。自Tirkel于1994年提出数字水印的概念以来, 数字水印技术取得了长足的发展, 各种算法层出不穷, 主要包括:空间域水印、变换域水印、分形水印等。然而经典的水印算法在水印的不可感知性、可检测性、鲁棒性三个方面不能做到很好的兼顾, 从一定程度上阻碍了数字水印技术的应用和普及[1,2]。2000年Lu等人提出一种了基于VQ编码的图像数字水印方案[3], 这种算法采用码书扩展的方法来产生码书划分, 然后利用码书划分嵌入水印信息, 但要求码书是保密的。后来有人提出了基于可变维VQ的图像水印算法, 但这种算法嵌入的水印是易碎性的, 鲁棒性较差[4]。

本文提出一种将水印嵌入于图像VQ压缩数据中的数字水印新算法, 算法中水印同时存在于VQ压缩后的数据中和VQ解压后的图像中。更重要的是, 实验证明这种算法对裁剪、模糊、JPEG、扭转等攻击具有一定的鲁棒性并且适用于比灰度图像更为普遍的彩色图像。所以, 可以利用本算法在Internet和其他应用VQ压缩的环境下, 有效地实现数字水印的嵌入和提取。

1 VQ编码

矢量量化 (Vector Quantization, VQ) 编码的基本操作包括:将矢量空间分割成有限的、彼此不相交的子空间, 并对每个子空间选择一个代表矢量作为量化结果[4]。 将VQ编码用于图像处理时, 首先将图像分割成大小相同的像块。例如512×512的图像按照4×4的尺寸可以分成16 384个像块, 每个像块代表一个16维的矢量, 称为训练矢量。VQ算法就是要从这些训练矢量中找到代表矢量, 组成码书 (Code Book) , 码书中的各矢量称为码字 (Code Word) 。编码时, 对各个训练矢量, 找出码书中最接近的码字对应的索引值, 组成一张索引表。这张索引表就是图像经VQ编码后的压缩数据。

码书的生成算法有很多, 常见的有LBG算法及其各种改进算法[5], 本文采用细胞分裂算法。仍以一张512×512的图像为例, 基本步骤如下:

(1) 将图像切割成4×4的小方格。

(2) 找出所有码字的质心X ( x1, x2, …, xk) 作为初始矢量。

(3) 设细胞分裂的步长为常数值 δ, 将初始矢量X分别减加步长 δ, 形成二个矢量:Y (y1, y2, ..., yk) 、 Z (z1, z2, ..., zk) , 其中yi= xi- δ, zi= xi+ δ, 且当yi< 0时, 取yi= 0, 当zi> 255时, 取zi= 255。

(4) 对Y, Z构成的码书执行LBG算法。即以Y及Z为质心, 将其余各码字归群到这两个质心, 并重新计算各群的质心, 得到Y′ 及Z′。

(5) 将Y′和Z′各分裂成两个矢量, 并重复步骤 (3) 、 步骤 (4) , 如此每一次码书大小以2的倍数增长, 一直到产生足够的码字个数。

算法中步长 δ 可以通过实验选取适当值, 比如10。这里的归群, 就是寻找与某矢量最接近的质心并归入其代表的子空间。矢量之间的近似程度由欧几里德失真来度量, 对于矢量Y和X, 定义:

显然失真越小, 近似程度越高。

2基于VQ编码的数字水印技术

Pitas和Kaskalis利用基于统计的数字水印方案的基本原理[6], 提出了数字签名的思想, 这种算法可以有效抵抗二次采样和JPEG压缩攻击。Fridrich提出了一种称为混合水印 (Hybrid Watermarking) 的算法, 它是在Cox提出的DCT变换算法的基础上, 再在中频DCT系数上叠加一扩频信号[7,8,9]。Kundur等人提出基于小波融合的水印嵌入算法, 它是在不同的分辨率下将水印和图像的小波系数相加, 相加前, 将水印的小波系数使用一种人类视觉模型约束进行调制[10]。VQ编码是一种压缩比比较可观, 压缩失真小, 适用范围广的压缩编码方案。 本文提出的基于VQ编码的水印策略, 嵌入位置为VQ压缩编码后的压缩域。

2.1水印嵌入

水印嵌入的重要步骤是码书划分。码书划分是指对VQ编码后产生的码书按码字之间的相似度进行划分, 即将彼此最相似的2个或几个码字分在同一子划分中。设一个码书有256个码字, 如果规定码书划分中的每个子划分含2个码字, 则共有128个子划分, 每个码字在对应子划分中的偏移量或为0, 或为1;于是要定位1个码字, 需要1个字节, 字节的高7位用于定位子划分, 字节的最低位用于定位子划分中的码字, 如:第一个码字的索引码为00000000, 第二个码字的索引码为00000001, 第十个码字的索引码为00001001。

当码书划分完成后, 就可以开始水印的嵌入过程, 图1为水印嵌入的原理框图, 详细步骤如下:

(1) 对原图像HI进行VQ编码, 包括:图像分块, 产生训练矢量集, 根据相似度利用细胞分裂法产生码书CB (Code Book) 与索引表IT (Index Table) , 也可以使用公共码书。对CB进行划分, 产生码书划分CD (Code Di-vided) , 每个子划分含2个码字。

(2) 根据嵌入水印信息的比特长度产生相同长度的取值不重复的随机序列Seed K, Seed K的取值范围由索引表的长度决定 (例如:水印图像为32×32的二值黑白图像, 索引表长度为4 096, 则Seed K为长度是1 024, 取值范围是1~4 096的随机序列) ;Seed K作为密钥, 决定水印比特嵌入索引表的哪些位置, 或者说将水印比特嵌入原图像的哪些子方格中。

(3) 取出水印比特流的当前比特位b, 根据密钥Seed K从IT中找到当前索引值index, 根据码书划分CD找到Index码字对应的子划分, 确定Index码字在子划分中的偏移量py。若b = py = 0或b = py = 1 , 则索引表IT中的Index值不变;否则, 将IT中的Index值改为子划分中偏移量为b的码字对应的索引值, 对于图像, 这相当于用子划分中另一个码字对应的子方格内容代替原方格内容。

(4) 重复步骤 (3) , 直至水印比特流结束, 水印嵌入完毕。

可以看出, 算法是通过码书划分来实现水印嵌入的, 过程中可能会用子划分中另一个码字对应的子方格内容代替原方格内容。因此, 如果同一个划分中的两个码字相差较大, 水印嵌入后的VQ压缩数据经VQ解码后, 其图像质量会下降得比较厉害。为解决这个问题, 可以在步骤 (2) 中码书划分CD产生后, 对码书CB进行优化, 优化方法为:对CD中的每个子划分, 用式 (2) 表示同一子划分中两个k维码字的距离:

设定一个阈值TH, 若DS>TH, 表明该子划分中的两个码字相差较大, 可以用式 (3) :

来提高两个码字间的相似度, 从而改善VQ解码后的图像质量。

在上述水印嵌入算法中, 水印嵌入的最大容量取决于原图像大小和子方格大小, 设原图像A × A, 子方格a × a, 则可以嵌入的水印信息量最大为:

本文提出的数字水印策略中, 在VQ编码后嵌入水印, 但水印仍然存在于VQ解码后的图像中。

2.2水印提取

水印的提取过程, 需要有与水印嵌入时相同的码书CB, 密钥Seed K, 如果未经VQ解码, 还需要水印嵌入算法的输出:索引表IT;如果已经经过VQ解码, 则需要解码后的图像 (码书可以与索引表一起通过网络传输至接收端, 也可以是收发端都有的公共码书) 。

图2为水印提取的原理框图, 水印提取的详细步骤如下:

(1) 对码书进行划分, 重新产生码书划分CD。若已经VQ解码, 跳至步骤 (2) ;若未经过VQ解码, 跳至步骤 (3) ;

(2) VQ解码后的图像HO, 对其进行分块, 并产生矢量集。根据密钥Seed K找到嵌入水印位的子方格对应的矢量, 利用码书确定该矢量对应的码字索引值Index, 即找出码书中与该矢量最接近的码字对应的Index。

(3) 直接由IT (Seed K (i) ) 确定嵌入水印位的子方格对应的矢量的Index。i表示当前提取的水印位在完整的水印比特流中的位置。

(4) 找到Index在码书划分中所属的子划分, 根据Index在子划分中的偏移量py, 即当前提取的水印位b=py。

(5) i=i + 1, 重复步骤 (2) ~ (4) , 直到i= length (Seed K) , 水印比特提取完毕, 由水印比特流重新组成水印图像。

3结果与分析

数字水印的优劣主要从嵌入水印后图像的失真程度, 以及对图像做各种处理后水印的鲁棒性两个方面评估。

失真可以用峰值信噪比 (PSNR) 测量。不同分辨率水印嵌入后的灰度图像如图3所示。图3中, 左边“龙” 字为嵌入的原水印, 右边为水印嵌入后的解码图像。

鲁棒性可以通过规范化系数NC (Normalized Corre-lation) 衡量。对嵌入水印的lena图像做各种裁减攻击, 测试结果如图4所示。

其中, 图4 (a) 为1 4白色裁减攻击实验图NC= 0.743 0;图4 (b) 为1 4裁减攻击实验图 (用原图像左上角1 4区域替代解码图的对应1 4区域) NC=0.874 2; 图4 (c) 为1 2白色裁减攻击实验图NC=0.490 7;图4 (d) 为1 2裁减攻击实验图 (用原图像上1 2区域替代解码图的对应1 2区域) NC=0.760 7。

索引裁减攻击是指对算法中的索引表进行裁减, 以试图破坏水印。实验结果如图5所示。

模糊操作又称平滑, 包括领域平均和中值滤波等。 模糊攻击是指对解码图像进行模糊操作, 以降低检测出的水印质量或使得接收端检测不出水印。实验结果如图6所示。

下面以彩色图像Linger (128×128) 为例, 嵌入水印图像大小为32×32, 给出彩色图像水印算法的鲁棒性实验结果, 见表1。

4结语

本文提出的水印策略正是利用VQ压缩编码向压缩数据中嵌入水印, 其区别于一般水印算法的特点在于:水印同时存在于压缩数据和解码图像中, 这使得它没有传统传输加密方法的局限性, 同时也让它在传输带宽有限、传输数据量受限制甚至可能有实时性要求的网络环境中有广阔的应用前景。

本文所述的算法, 在今后的研究中可以做如下扩展:每个子划分中含有码字数由2个扩展到2n (本文中n=1) , 则每个子方格可以嵌入的水印比特数为n。例如: 每个子划分中含4个码字, 则子划分中码字的偏移可以是00, 01, 10, 11中的一个, 所以由密钥决定的每个子方格中都可以嵌入2个水印位。另外, 在细胞分裂法的基础上, 进一步改进码字搜索算法及码书生成算法, 从而提高算法中码字的搜索速度和码书的生成速度, 这也是VQ编解码领域的核心问题之一。

摘要:提出一种基于矢量量化压缩编码 (简称VQ编码) 技术的水印策略, 在对原图像进行VQ编码后, 按码书中码字的相似程度对码字进行划分, 根据待嵌入水印图像的大小产生一个随机序列作为密钥, 然后根据密钥在压缩数据的特定位置嵌入水印。提出的水印策略, 其主要特征在于水印既存在于原图像VQ编码后的压缩数据中, 也存在于接收端VQ解码后的图像中。压缩后的数据在数据量上远小于原始数据, 所以由它替代原图像携带水印, 既节省存储空间, 也减小了网络传输时间, 特别适用于网络环境下的水印嵌入和提取。更重要的是, 这种水印策略具有较好的鲁棒性, 能够抵抗诸如裁剪、模糊、JPEG压缩等波形攻击和扭转几何攻击。

关键词:数字水印,矢量量化编码,码书,细胞分裂法,码书划分

参考文献

[1]刘瑞祯, 谭铁牛.数字图像水印研究综述[J].通信学报, 2000, 21 (8) :39-48.

[2]陈涛, 杨峰, 陈佳.数字水印研究综述[J].软件导刊, 2010, 9 (1) :150-152.

[3]LU Zhe-ming, PAN Zheng-xiang, SUN Sheng-he.VQ codebook design based on the modified tabu search algorithms[J].ACTA Electronica Sinica, 2000, 28 (10) :23-26.

[4]王志雄, 王慧琴, 李人厚.数字水印应用中的攻击和策略综述[J].通信学报, 2002, 23 (11) :74-79.

[5]LINDE Y, BUZO A, Gray R M.An algorithm for vector quantizer design[J].IEEE Transactions on Communication, 1980, 28 (1) :84-95.

[6]NIKOLAIDIS N, PITAS I.Robust image watermarking in the spatial domain[J].Signal Processing, 1998, 66:385-403.

[7]何军辉, 蔡汉添.一种基于DCT中频的图像水印技术[J].华南理工大学学报, 2001, 29 (12) :57-60.

[8]杨延峰, 方勇, 王本建.基于DCT域中频系数关系的冗余水印算法[J].四川大学学报:自然科学版, 2009, 46 (5) :1333-1336.

[9]程颖, 张明生, 王林平, 等.基于DCT域的自适应图像水印算法[J].计算机应用研究, 2005, 12 (1) :147-149.

矢量量化编码 篇2

关键字:加权SUSAN算法;角点;遥感;矢量化

中图分类号:TP751.1文献标识码:A文章编号:1007-9599 (2010) 09-0000-04

Weighted SUSAN Algorithm and Vectorization of Remote Sensing Image

Mu Wangshu,Zhou Jianhua

(Scientific Base of Geography,East China Normal University,Shanghai200062,China)

Abstract:A new Algorithm,Weighted SUSAN (WSUSAN),which is an improvement of classical SUSAN algorithm focusing on corner detection is put forward.Comparing with the classical algorithm,the new one has a significant improvement in accuracy,while keeps the efficiency in the same level.As an application of WSUSAN,A research of remote sensing image vectorization based on WSUSAN corner detection result is brought about.The research mainly includes:the filtering of over-detected corners,the sort of corners and vectorization.It is proved that the algorithm has a good robustness base on the simulation.

Keywords:Weighted SUSAN;Corner;Remote sensing;Vectorization

一、引言

(一)角点检出的意义和进展

角点是图像的重要特征之一,正确识别角点能够从宏观尺度上把握图像的性质,为进一步分析打下基础。但是,角点没有精确的数学描述符,故目前的算法尚不能有效和准确地检出所有角点,如使用USAN面积可以在一定程度上描述角点,但精度不高,难免存在过检出或欠检出的问题。一般认为,角点是图像中周围亮度变化较大的点,或是边缘曲率变化较大的点。由此引出角点识别的两个主要的方向,即基于灰度图像的和基于边缘的角点检测算法[1]。SUSAN算法是经典的基于灰度的角点检测算法,由英国牛津大学Smith等人提出[2],主要用于图像中角点的检测。但由于其计算USAN面积的函数定义在整数域,与实际USAN面积相比具有较大的误差,由此导致大量过检出和欠检出的现象。在前人的研究中,提出了不少对SUSAN算法的改进方法,包括增加角点“好坏”判别的函数[1],通过二环模版检测一些特殊形状的角点[3],引入小波变换对角点进行分层检测[4],以及增加方向判别方法[5]等。

角点提取的意义之一是用于形状的识别。不仅如此,角点对于图斑矢量化也具有重要意义,经过筛选的精确角点可直接作为矢量节点使用。

(二)矢量化的意义和进展

空间信息的存储方式有栅格模型和矢量模型两种,矢量化是栅格模型向矢量模型转化的过程。矢量化是GIS分析的基础,各种遥感影像和地图数据都必须通过矢量化转化为矢量数据后才能在GIS软件中进行有效地分析。但是,矢量化的工作简单而枯燥,目前在GIS领域大量采用人工矢量化方法,不仅耗费大量人力和物力,而且使GIS系统的数据更新速度严重滞后于需求。在前人的研究中,也提出了不少自动矢量化的方法,如利用ArcGIS中的ArcScan工具和Photoshop相结合对土地利用图的矢量化[6]和基于数学形态学的自动矢量化方法[7]等。常用矢量化过程一般分为三步,即首先获取圖斑对象,再跟踪边界,获得边界链码,最后对边界链码进行处理,消除冗余,得到矢量化的对象。

本文通过改进SUSAN算法,在准确识别图像角点的基础上,对图像进行矢量化,经实验,取得了比较好的效果。

二、算法

(一)USAN原理

USAN算法使用一个尺寸较大的圆形模板,检测中模板移动到图像的每个像素,模板的中心称为核(Nucleus)。在模板覆盖的区域内,所有具有与核(对应像素)相同或相似灰度的像素构成核值相似区USAN(Univalue Segment Assimilating Nucleus),相似区中的像素总数定义为USAN面积。

根据USAN面积与模版总面积的比值s,可以确定核在图斑中的位置。如图1,当s>0.5时(模板A),核在图斑内;当s=0.5时(模板B),核在图斑边缘;当s<0.5时(模板C),核在图斑的角上;

(二)SUSAN算法

SUSAN(Smallest USAN)是在USAN原理的基础上,对其进行离散化,使其能够适应计算机中以矩阵形式存储的图像,并选择一个可行的最小的“模版”(或称SUSAN算子),以减少计算的时间。

经典的SUSAN算法使用一个面积为37的算子来替代圆形模版(如图2中的灰色区域)。

以USAN面积为特征值检测角点。检测时,将模板 依次移到图像P的每个像素,并按下式计算USAN面积 :

其中, 是模板各元素位置的值,它按下式计算:

其中, 为核 的灰度, 为邻域像素 的灰度; 为灰度差的阈值。

该算法可以描述为:在当前核的模板区域内,将每个像素的灰度与核灰度做比较,如果差值不大于T,则USAN面积计数器加1。可以通过为USAN面积设计适当的阈值G,来将当前像素归为角点、边缘等。并可通过对G的调整,抑制局部噪声。

(三)SUSAN算法的改进与WSUSAN

1.经典SUSAN算法使用中的问题。

在实践过程中,SUSAN算法并不能完美地检测出图像上的所有角点,存在着明显的过检出和欠检出的现象。究其原因,是由于SUSAN算法在模板设计上所采用的离散化方法不能很好近似USAN面积,存在较大的误差;另外,SUSAN算法存在识别精度的上限,它等于SUSAN算子的半径(4像素),当角点之间的距离小于该半径,SUSAN算法即无法分辨这两个角点。

2.SUSAN算法的改进。

针对SUSAN算法存在的问题,本文对SUSAN算法作出改进,通过对模板边缘元素加权来改善USAN面积的计算精度,故命名为WSUSAN算法(加权SUSAN算法):

(1)WSUSAN算子。

理想的性能最好的SUSAN算子为圆形,但元素有限的“栅格式”SUSAN模板只能近似模拟圆形。为了提高近似圆形的程度,可以增大SUSAN算子的面积,使得每个元素占SUSAN算子的比例减小,以提高USAN面积计算的精度。但会使算法的时间复杂度大大增加。本文考虑在不增加模板元素的前提下,通过对边缘元素加权来近乎严格地模拟圆形模板,其原理和方法叙述如下:假设有一7*7的正方形网格,被一内切圆覆盖(图3),以每个小格被圆覆盖到的面积占这个小格的比例作为这个小格的权重。

通過简单的面积计算,得到对应的权重矩阵为:

检测时,将模板 依次移到图像的每个像素,相应的,USAN面积的计算方法也作出修改:

其中, 是模板各元素位置的值,并且规定,如果某一像素属于图斑边缘点,则其对应的USAN面积只计算一半,即:

通过为USAN面积设计适当的阈值G*,来将当前像素归为角点、边缘等。根据图斑的不同情况,一般G*设为略小于总权值的一半,约16-18.

(2)过检出角点的筛查。

运用以上改进的SUSAN算法,欠检出的现象已经很少,但是,过检出的现象仍然明显。主要是由于USAN原理本身的缺陷所致,如图4,虽然模版的中心并不位于角点,而是略有所偏离,其USAN面积与模版面积的比仍然小于二分之一,导致这一点为过检出点。

注意到过检出的角点和实际角点之间的空间关系,即过检出的角点总是出现在实际角点的附近,且在所有角点的USAN面积中,实际角点的USAN面积最小[2]。由此得过检出角点筛查算法:

设 为经改进的SUSAN算法计算得到的角点位置图:

由于SUSAN算子的半径是SUSAN算法的分辨能力的下界,距离小于SUSAN算子半径的两个角点无意义,故选择SUSAN算子的范围作为筛查算法的筛查范围。

设 为筛查后确认角点的位置图。

(四)基于角点识别结果的图斑矢量化

1.生成图斑边界。

由于在角点识别的结果中并不包含角点顺序的信息,本文考虑通过对图斑边界的跟踪确定角点的顺序。利用数学形态学的方法,用一个1像素宽的十字型结构元素 结构元素对图斑进行腐蚀,并把腐蚀的结果与原图相减,可以得到图斑的闭合边界。以边界上的任意一点为起点,对边界进行深度优先遍历,即可得到按一定顺序排列的边界点列表 。

2.角点顺序的确定。

由于SUSAN算法的特点,只能识别小于 的角(对于大于 的角,被识别到的则是与其相邻的小于 的角)。故小于 的角的位置恰好在 上,而大于 的角则与 中的节点有1像素的偏差,在排列角点的过程中,需对这样的偏差进行适当纠正。

不妨认为,所有角点的检测位置都在以 为中心,1个像素半径的缓冲区中,而所有角点的正确位置都在 上。按依次扫描 中的点,若扫描到的点 为角点,则记录 ;若扫描到的点 非角点,但其附近一个像素为角点,也记录;即最终顺序角点集 为:

按照这样的计算方法, 中将产生大量的空值节点,从节约空间的角度考虑,可以把 设为一个栈,依次扫描 中的边界点,若 符合条件,则压入 栈中,得到的 已经压缩掉了所有空值点。

这样的 已经是矢量形式的图斑的表达,只需把 的第一个节点复制到其末尾,再把所有相邻节点两两相连,即是原图斑的矢量图。

三、讨论

(一)WSUSAN与SUSAN的角点检出精度比较

在实践中,WSUSAN算法能够显著提高角点的检出精度,如图5(子图a和b分别为WSUSAN和SUSAN算法检出效果图,黑色十字为检出的角点)

为了进一步说明WSUSAN算法在角点检出精度上的提高,比较两种方法角点分割阈值的适定性,下面通过对用两种算法获得的USAN面积的统计分析。

首先,利用两种算法得出的角点识别结果和人工判读相结合的方法,确定角点的确切位置。统计两种算法得到的角点位置USAN面积和非角点位置的USAN面积,对于WSUSAN算法,还需统计其被筛除的伪角点的USAN面积。按USAN面积占模板总面积的比归一化后得到图6

由图分析可知,利用WSUSAN算法得到的USAN面积存在明显的阈值(图6虚线位置),即可以利用阈值分割的方法获得角点。而SUSAN算法的阈值不明显,或说,角点与其他店的USAN面积存在重叠,简单的阈值分割不能保证其角点检测的精确程度。

(二)算法复杂度分析

设整幅图像的像素总量为n,则原SUSAN算法的算法复杂度为 。在WSUSAN算法中,角点识别过程的算法复杂度也为 ;数学形态学提取边界方法为 ;深度遍历图斑边界算法复杂度约为 ;最终确定角点顺序算法复杂度约为 ,故总算法复杂度为 。与原SUSAN算法相比处于同一复杂度级别。

(三)WSUSAN用于图斑矢量化的有效性

为了验证本文所述算法的有效性,进行了一些仿真试验(如图7),尝试在遥感图像中提取工业用地的地块。图7A为Quickbird遥感图像局部,其中白色的部分为厂房;图7B处理遥感图像得到工业用地地块图斑(白色),并利用WSUSAN算法计算得到的图像角点(图中用黑色十字标出);图7C根据角点信息得到的矢量化的地块。

四、结论

本文提出了一种加权SUSAN算法WSUSAN,用以改善灰度图像角点的提取精度。该算法通过对SUSAN算子边缘元素的加权,改善USAN面积的计算精度,较好解决了经典SUSAN对角点的欠检出问题;通过设计角点筛查算法,解决了角点的过检出问题。本文还通过WSUSAN和经典SUSAN获得的USAN面积的统计分析,证明WSUSAN算子具有明确的用于角点分割的阈值。而使用SUSAN算法时,由于角点和其它点的USAN面积有重叠,角点分割的USAN面积阈值存在不适定性。

作为WSUSAN算法的应用实例,本文还进行了基于WSUSAN角点检测的遥感图像矢量化的研究,形成了角点排序,压缩非角点边界点等算法,仿真测试表明,本文提出的所有算法具有较好的鲁棒性。

参考文献:

[1]陈志方,张艳宁.一种改进的SUSAN算法[J].微电子学与计算机,2007,24,11:142-144

[2]SMITH S M,BRADY M.SUSAN—A new approach to low level image processing[J].International Journal of Computer Vision,1997,23,1:45-78

[3]席志红,刘利彬,许新利.SUSAN角点检测算法改进[J].应用科技,2006,9,33:30-36

[4]邵泽明,朱剑英,王化明.基于SUSAN算法的分层快速角点检测[J].华南理工大学学报,2006,7,34:65-68

[5]贺菁,李庆华,王新赛.基于方向性SUSAN算子的图像角点特征提取[J].小型微型计算机系统,2008,3,29:508-510

[6]朱春节,韩雪培,封殿波.土地利用图自动矢量化方法探讨[J].测绘通报.2008,7:50-53

[7]刘利军,刘吉平,周远英,王乘.基于数学形态学的地形图自动矢量化研究[J].计算机应用研究.2003,2:83-85

[8]Wang Min,Deng Xiaolian.A New Right Angle Corner Detection Method.International Conference on Artificial Intelligence and Computational Intelligence[C].Shanghai.2009,2:28-30

[9]Hang-Ki Ryu,Jae-Kook Lee,Eoun-Taeg Hwang,Liu Jing,Hong-Hee Lee and Won-Ho Choi.A New Corner Detection Method of Gray Level Image Using Hessian Matrix.International Forum on Strategic Technology[C].Ulaanbaatar,2007:537-540

[10]Jie Zhao,Haichao Ma,Guozun Men.A new corner detection algorithm with SUSAN fast hierarchical method.International Asia Symposium on Intelligent Interaction and Affective Computing[C].Wuhan,2009:112-115

[11]Shenghua Xu,Litao Han and Lihua Zhang.An Algorithm to Edge Detection Based on SUSAN Filter and Embedded Confidence.Sixth International Conference on Intelligent Systems Design and Applications[C].Jinan,2006,2:720-723

[12]Weng Muyun and He Mingyi.Image Feature Detection and Matching Based on SUSAN Method.International Conference on Innovative Computing, Information and Control[C].Beijing,2006,1:322-325

[13]Ewaryst Rafajlowicz.SUSAN edge detector reinterpreted,simplified and modified. International Workshop on Multidimensional (nD) Systems[C].Aveiro,2007:69-74

[14]Li-hui Zou,Jie Chen,Juan Zhang,Li-hua Dou.The Comparison of Two Typical Corner Detection Algorithms.International Symposium on Intelligent Information Technology Application[C].Shanghai,2008,2:211-215

作者簡介:穆望舒(1989-),男,华东师范大学资源与环境科学学院学生,主要研究方向:遥感与GIS。

通讯作者:周坚华(1956-),女,上海人,副教授,主要研究方向:遥感图像理解与智能识别,环境遥感,生态遥感。

矢量量化综述 篇3

关键词:矢量量化,码书设计,码字搜索

引言

早在20世纪60、70年代已有人关注矢量量化技术, 而在20世纪80年代才开始逐步完善起来, 1980年由Linde, Buzo和Gray将聚类算法引入到矢量量化器设计中, 提出了著名的矢量量化码书设计算法, 即LBG算法[1], 该算法的提出是矢量量化技术发展的里程碑。随后, 矢量量化受到了日益广泛的关注, 矢量量化的相关研究人员以LBG算法为基础, 将神经网络、模糊数学、遗传算法、等多种方法和思想融入到矢量量化的研究中来, 并得到了更加高效、快速、性能更好的矢量量化器。矢量量化进入了一个高速发展时期, 并产生了许多成果。随着计算机及相关技术的发展, 用硬件实现矢量量化算法的研究也越来越多。

1 矢量量化的基本原理

矢量量化是标量量化的拓广和延伸。可以这样描述矢量量化的基本原理[2]。设有N个K维矢量{X1, X2, …, XN}, 其中第i个矢量可记为Xi={xi1, xi2, …, xik}, i=1, 2…, N。把K维空间RK无遗漏的划分为J个互补相交的子空间R1, R2, …RJ, 即满足:R1∪R2∪…∪RJ=RK;Ri∩Rj=!, i≠j。这些子空间R1, R2, …RJ称为胞腔 (cell) 。在每一个子空间中找出一个代表矢量Yi={yi1, yi2, …, yik}, i=1, 2…, N。令矢量集Y=[Y1, Y2, …, YJ], Y叫作码书或码本, Yi叫码字 (code word) 或码矢 (code vector) , 码书Y中的矢量个数J叫作码书长度。矢量量化的过程就是对任意输入矢量X∈RK, 在Y中找到一个与X最接近的Yi代替X, Yi就是X的量化值。矢量量化的过程可以看成是从K维欧氏空间RK到其中一个有限子集Y的映射。这个映射可以记为:Q:RK→Y={Y1, Y2, …, YJ}。

2 矢量量化中的关键技术

矢量量化的三大关键技术[3]是码书设计、码字搜索和码字索引分配。其中对码书设计和码字搜索研究比较多, 而码字索引分配则是比较新的研究方向。矢量量化提出以后产生了一些基本算法, 经过几十年的发展, 学者们在矢量量化设计中提出了多种改进算法。下面分别介绍这三种关键技术以及相关的算法。

2.1 码书设计

矢量量化设计的首要问题和核心问题是码书的设计。如果没有码书的设计, 那么整个矢量量化系统就无法实现。码书的质量直接影响到压缩效率和复原信号的质量。

1980年, Linde, Buzo和Gray提出了一种有效的矢量量化码书设计算法, 也就是在矢量量化技术的发展中具有里程碑意义的LBG算法。LBG算法是码书设计的一种经典算法, 其优点为物理概念清晰、算法理论严密及算法容易实现。但是, LBG算法并不完美, 它的主要缺点是:对初始码书的依赖性强, 易收敛于局部最优。学者们主要针对LBG算法易陷入局部最小失真和对初始码书的依赖性强这两个方面对其进行改进, 提出了多种改进算法。a.基于神经网络的码书设计, 如自组织特征映射算法 (SOFM) [4], 它的收敛特性受初始码书的影响较小, 对初始码书和训练矢量的要求较低, 且可以很方便的修改已有的码书。它的缺点是计算量大。b.遗传算法[5]。针对LBG易陷入局部最优的问题进行的改进, 能得到全局最优解。

2.2 码字搜索

码字搜索是矢量量化的一项关键技术。码字搜索是指在码书已经存在的情况下, 对于给定的输入矢量, 在码书中搜索与输入矢量之间失真最小的码字。研究码字搜索算法的主要目的就是寻求快速有效的算法以减少计算复杂程度, 且尽量使算法易于硬件实现。

针对穷尽搜索算法的缺点, 许多文献提出了各种各样的快速算法, 这些码字搜索算法可以分为两大类:一类是基于特殊码书结构的快速算法, 这类算法依赖于码书结构而在编码时只搜索较小的子码书, 如分类矢量量化和基于树结构的矢量量化[6]等, 第二类算法不依赖于码书, 这类算法通常采用一些码字排除准则以减少计算量。这些算法有:a.部分失真搜索算法 (Partial Distortion Search, PDS) [7]。部分失真搜索算法的思想是:在计算某个码字与输入矢量之间的失真测度的过程中始终判断累计的部分失真是否已经超过目前的最小失真, 一旦超出则终止该码字与输入矢量间的失真计算。部分失真搜索算法是一种简单有效的算法, 但是其效率是有限的。b.基于Hadamard变换的搜索算法[8]。这类算法利用了变换域的特点, 一是在变换域内搜索最匹配码字和在空间域内搜索最匹配码字是等价的, 另一个是变换域具有能量集中的特点。利用变换域的特点和其他搜索算法相结合能够产生的较高效率的算法。

3 展望

已经有学者提出在码书设计时考虑信道失真的联合优化技术, 即所谓的信道最优矢量量化 (channel-optimal VQ, COVQ) 。未来码书设计的研究重点为:a.考虑信道失真的信道最优矢量量化码书设计算法。b.与初始条件无关的接近全局最优的码书设计算法。c.适用特定应用场合的码书设计算法。

传统的码字搜索算法的主要思想是减少乘法运算来加快码字搜索速度, 但随着计算机技术的发展, DSP芯片的乘法运算时间和加法运算时间, 甚至是比较运算时间都可以用一条指令实现, 所以现在的码字搜索算法应当考虑如何减少总运算量, 也就是减少加法、乘法、比较等运算次数的总和。可以看出, 码字搜索算法的发展趋势为:a.传统类型的码字搜索算法研究趋于饱和。b.适合用DSP或其它硬件快速实现的码字搜索算法将成为研究重点。

对于矢量量化本身, 与其他技术结合也有很多学者进行研究, 比如和小波变换结合, 利用小波分解后图像的不同子图进行合适的处理以提高算法性能。

参考文献

[1]LINDE Y, BUZO A and GRAY R M.An Al-gorithm for Vector Quantizer Design[J].IEEE Transactions on Communication.1980, 28 (1) :84-95.

[2]陈善学.矢量量化的等误差竞争学习算法[J].重庆邮电学院学报 (自然科学版) , 2004, 16 (1) :63-65.

[3]孙圣和, 陆哲明.矢量量化技术及应用[M].北京:科学出版社, 2002.

[4]徐勇, 戴逸松, 荆涛, 孙德丰.基于SOFM神经网络的图像矢量量化的研究[J].长春邮电学院学报, 1998, 16 (1) :1-8.

[5]Liu Ying, Zhou Hui, Yu Wen-Fang.Image Vector Quantization Coding based On Genetic Algorithm[J].IEEE International Conference on Robotics, Intelligent Systems And Signal Proeessing, 2003, 773-777.

[6]耿国章, 尹立敏, 雷凯等.基于树结构矢量量化码书的快速搜索算法[J].电子器件, 2007, 30 (3) :1061-1063.

[7]BEI C D, GRAY R B.An Improvement of the Minimum Distortion Encoding Algorithm for Vector Quantization[J].IEEE Transactions on Communications, 1985, COM-33 (10) :1132-1133

基于矢量量化的颜色图像检索方法 篇4

基于内容的图像检索 (CBIR) 已经成为一个非常活跃的研究领域。CBIR系统通过提取图像自身的视觉内容作为检索特征, 在图像数据库中查找与用户所提交样本图像在内容上一致或相似的图像集, 通过对图像底层特征的比较来实现检索。目前基于内容的图像检索[1]一般采用的底层视觉特征有颜色[2,3]、纹理[4]、形状[5]信息等。

颜色是彩色图像最底层、最直观的特征, 通常对噪声, 图像质量的退化、尺寸、分辨率和方向等的变化具有很强的鲁棒性, 被广泛应用于图像检索中。传统的基于颜色的图像检索方法主要采用颜色直方图, 其核心思想是在颜色空间中采用一定的量化方法对颜色进行量化, 然后统计每一个量化通道在整幅图像中所占的比重。这种方法计算简单, 但不能描述颜色的空间分布情况。矢量量化在图像检索领域应用广泛, LBG算法[6]是矢量量化技术中的经典算法。文献[7]采用LBG算法量化颜色空间, 用颜色转移矩阵描述颜色的空间分布, 检索效率有一定改善。但LBG算法存在两大缺点:一是对初始码书非常敏感, 初始码书的选取, 不但影响递推的收敛速度, 而且影响码书的性能;二是训练时间长, 不能自适应地跟踪图像信源的统计特性。因此, 用其量化颜色空间, 误差较大, 颜色量化不精确。文献[8]提出的竞争学习算法 (CL算法) , 通过每一次训练更新获胜码字或按一定规则更新所有码字, 较为有效地提高了码书质量, 但训练时初始码书的选择较为重要。基于全图的检索方法无法很好地包含颜色的空间分布信息, 突出图像重要部分, 文献[9]将图像进行均匀分块, 再对分块主颜色进行匹配。文献[10]根据图像中心部分的重要性, 对图像进行重叠分块, 再对图像各个分块采用不同的加权系数以进行颜色特征匹配, 相对于全局算法, 检索效率有所提高。但此分块法容易破坏图像的完整性, 使颜色信息不够丰富。

针对上述问题, 提出一种基于矢量量化的全局和局部感兴趣区域相结合的图像检索方法:把采用矢量范数排序的方法得到的码书作为初始码书, 再用基于神经网络的竞争学习算法训练初始码书, 以改善码书性能, 并对图像进行一定程度的分割, 划分出重要区域。算法克服了文献[7]对初始码书敏感、码书训练不精确以及颜色空间分布描述不够、不能有效限制背景信息的缺点。有效地聚类了相似矢量, 构造出鲁棒性较好的码书, 突出局部特征, 同时防止过分划分使得颜色信息不完整。通过实验, 验证了算法的码书性能好, 颜色量化准确, 匹配效果较好, 是进一步提高检索效率的有效方法。

2 相关理论

2.1 矢量量化及CL算法

矢量量化的过程可以看成是一个从k维空间Rk到其中一个有限子集Y的映射。对k×M个值组成的序列{xij} (i=1, 2, …, M;j=1, 2, …, k) , 每k个为一组, 共分为M组, 其中每组为一个k维矢量。把k维空间Rk无遗漏地划分为N个互不相交的子空间 (胞腔) R1, R2, …, RN, 在每一个子空间Ri中找出一个代表矢量Yi={Yi1, Yi2, …, Yik}, Yi则称为码字, 各个码字的集合为Y={Y1, Y2, …, YN}, Y则称为码书, 码字的个数N即为码书的尺寸。矢量量化原理示意图如图1所示。

神经网络的方法, 由于其高效的非线性逼近或聚类的特点, 已经成功运用到矢量量化码书设计中。这类算法利用神经网络强大的学习功能, 在学习的过程中不断更新获胜的神经元 (码字) , 且学习速度 (收敛速率) 可由学习率等控制因子控制。基于神经网络的竞争学习算法 (CL) 是一种简单的硬判决聚类算法, 在学习过程中只更新获胜的码字, 并不断地调整学习率, 使算法逐渐收敛。相对于LBG算法训练一轮更新一次码字, CL算法每训练一个矢量更新一次码字, 训练出来的码书性能更好。

2.2 颜色索引直方图

HSV模型更接近于人对颜色的视觉感知, 它把彩色像素值表示为三种属性:色调、饱和度、亮度, 与人的观察方式相一致, 选择HSV空间为量化空间更为合理。

将图像从RGB颜色空间转换到HSV颜色空间, 分别提取三个颜色分量并对图像进行分块, 采用CL算法训练初始码书。具体算法步骤如下:

1) 设训练矢量集为X={X1, X2, …, XM}, 待设计码书为Y={Y1, Y2, …, YN}, 迭代次数为t, 并采用平方误差测度。

2) 对于N个初始码本Yj (0) 且Xl∈X, 计算误差测度为

3) 选择最小误差的码字Yi, 其中di=min (dj) , j=1, 2, …, N。

4) 按式 (2) 调整获胜单元码字为

式中:a (t) 为学习速率, 这里取a (t) =1/t。

5) 当满足误差要求或指定迭代次数时停止训练, 所得Y作为最终码书;否则, 继续步骤2) 至4) 。

经上述颜色聚类过程, 三维彩色图像可以分别获得三本码书Hi, Si, Vi, 将它们合并为一个特征矢量C, C= (Hi, Si, Vi) , i=1, 2, …, N。每个像素块通过一个码字的索引号来表征, 并获得HSV空间的颜色码字索引表ω= (1, 2, …, i, …, N) , 它相当于一个包含N种颜色的查色表。根据矢量量化码表, 通过统计各码字出现的频率及所占百分比, 得到彩色图像的颜色索引直方图H (v1, v2, …, vi, …, vN) 。其中, vi表示索引号为i的码字频率百分比, N为码书尺寸。

2.3 主颜色转移矩阵[7]

矢量量化码表共N个码字, 也即量化成了N种颜色。根据此颜色集提取图像的主颜色, 并得到图像主颜色转移矩阵, 主颜色转移矩阵形成的简要过程如图2所示。

具体方法描述如下:

1) 将图像分成m×n块, 每一块均包含s×t个像素。

2) 得出每一块的主颜色索引值, 也就是该块出现次数最多的索引值。这样就形成了一个二维的主颜色矩阵, 其大小为m×n, 记为A={ai, j} (i=1, 2, …m;j=1, 2, …n) 。

3) 建立一个N×N的矩阵P, 各元素的初始值为0。将矩阵A按Z字形进行扫描, 设ai, j和ap, q为扫描序列中一对相继出现的颜色 (ai, j在ap, q前面) , 则P中相应元素Pai, j, ap, q自增1, 如此反复, 直到扫描完成。

4) 建立一个N×N的矩阵D, 其元素的计算公式为

式中:D即为所提取的图像主颜色转移矩阵。

由以上步骤和图2可以看出颜色转移矩阵描述了图像中相邻两块的颜色情况, 从一定程度上反映了图像的颜色空间分布。

3 本文算法

颜色空间的合理量化, 对图像检索的精确度有较大影响。采用矢量量化的方法量化颜色空间, 训练质量较好的码书尤为重要。人们在检索图像时对整个画面的重视程度是不同的, 突出图像中心主体部分, 限制背景范围对检索精度的提高有一定影响。针对以上问题, 本文采用基于矢量范数排序的方法对训练矢量运用分段选取初始码字, 算法使用了矢量的特征量, 脱离了对图像结构因素的依赖, 形成鲁棒性较好的初始码书;采用CL算法训练码书, 在学习过程中只更新获胜的码字, 同时不断地调整学习率, 以获得性能较好的码书;并提取局部中心感兴趣区域, 与全局特征加权检索。检索过程如图3所示。

具体检索过程如下:

1) 选取一幅色彩丰富且分布均匀的图像, 将图像从RGB颜色空间转换到HSV颜色空间, 并将其H, S, V三个颜色分量抽取出来。

2) 选择相邻且互不重叠的4×4像素点作为训练矢量。

3) 采用矢量范数排序的方法形成初始码书:设码书大小为N, 计算各训练矢量的范数normi (i=1, 2, …, L) , 将normi按升序排列, 每隔个矢量抽取一个作为初始码字, 以形成尺寸为N的初始码书。

4) 在图像库各类图像中选取色彩迥异的24幅图像作为训练图像集, 通过CL算法对像素块聚类, 三维彩色图像可以分别获得三本码书Hi, Si, Vi。将它们合并为一个特征矢量C (最终码书) , C= (Hi, Si, Vi) , i=1, 2, …, N。

5) 记录各码字索引值, 码字索引的集合相当于一个包含种N颜色的查色表。

6) 将图像按图4进行分块, 提取中心区域为感兴趣区域 (阴影部分) 。

7) 将待检索图像和图像库中图像分成和码字相同大小的像素块, 在查色表的基础上, 得到图像全局和局部中心区域的索引直方图及主颜色转移矩阵。设待检索图像为A, 图像库中任意一幅图像为B, 其感兴趣区域分别为a和b, 则相应的索引直方图和主颜色转移矩阵为:HA, HB, Ha, Hb, DA, DB, Da, Db。

8) 全局和局部颜色特征加权检索。采用式 (4) 和式 (5) 分别计算全局相似度Simi1和局部相似度Simi2, 它们的相似性度量采用欧氏距离, 然后进行加权。

式中:ω1, ω2∈[0, 1], ω1+ω2=1。

式中:ω3, ω4∈[0, 1], ω3+ω4=1。

式中:p, q∈[0, 1], p+q=1。

9) 将合成的相似度Similar按升序排列, 返回检索结果。

4 实验结果

采用Li[11]提供的图像数据库, 选取其中420幅256×384或者384×256的彩色图像形成检索图像库, 共有人物、恐龙、花朵、草原、海滩、山峰和汽车共7类图像, 每类包含60幅, 用查准率来衡量其检索性能。

查准率为

式中:RA表示正确检索出的相关图像数量;RB表示检索出的无关图像数量。

具体测试时, 不同类别的图像各取10幅构成测试图像集, 每幅图像依次返回6幅、12幅……60幅的检索图像。在不同返回数目情况下, 分别计算各类样本图像的平均查准率作为该类别的查准率。表1给出了文献[7]和本文算法在返回图像数目为12, 24, 36, 48的情况下, 每类图像的查准率。

%

从表1可以看出, 在返回图像数目较少时, 文献[7]算法和本文算法的查准率都相对较高, 随着返回图像数目的增加, 查准率都有所下降。对于颜色分布较为集中的图像, 如人物、恐龙、花等, 加入局部感兴趣区域之后, 在返回不同图像数目时, 检索效率均有明显提高。对于海滩、山峰这两类颜色分布相对较散的图像, 加入局部感兴趣区域后, 检索效率有一些起伏, 如海滩在返回24幅图像时, 山峰在返回36幅和48幅时, 本文检索效率有所下降, 这是因为对于颜色分布不集中的图像, 感兴趣的区域不一定就在图像中心部分。另外, 由于采用矢量范数排序的方法形成初始码书, 并用基于神经网络的方法进行优化, 使得颜色量化更为准确, 在返回12幅图像及其他情况下检索效率还是有所提高。对于图像库整体的查准率, 图5给出了相应结果。

在返回图像数目相同的情况下, 计算7类图像的平均查准率, 作为在该返回数目下图像库的整体查准率, 以此对算法进行综合评价。由于各语义类别的图像有很大不同, 每个人对图像的感受和理解也都不同, 所以查询准确率有一定的波动。从整体效果来看, 本文提出的检索算法性能较文献[7]更优。图6和图7显示的是一幅查询例图为花的检索结果, 第1幅为查询例图, 第2~24幅为检索结果图。

5 结束语

本文提出一种基于矢量量化的颜色检索算法, 算法通过训练码书, 将颜色空间进行更为精确的聚类划分。在全局特征的基础上, 对中心区域加权, 既在一定程度上反映了图像颜色分布情况, 又突出了重要区域, 限制了背景信息。与现有的颜色算法比较, 该算法具有较明显的优势, 是一种有效的图像检索算法。

摘要:针对颜色空间量化和直方图检索存在的问题, 提出一种新的颜色图像检索方法。该方法通过对颜色空间进行矢量量化, 使量化结果更接近人的感知;在提取分块主颜色的基础上引入颜色转移矩阵, 以描述颜色的空间分布情况;并将索引直方图和颜色转移矩阵两种颜色特征相结合, 对图像整体和局部感兴趣区域赋以不同的权值, 使局部图像特征矢量增强, 从而提高检索精度。实验表明, 该方法能较有效地提高检索效率。

关键词:图像检索,矢量量化,感兴趣区域,索引直方图

参考文献

[1]汪炎龙, 李金龙, 刘金华, 等.基于内容的图像检索方法[J].电视技术, 2005, 29 (4) :9-12.

[2]SWAIN M, BALLARD D.Indexing via color histograms[J].IEEE Trans.International Journal of Computer Vision, 1990, 7 (1) :390-393.

[3]高美真, 申艳梅.基于颜色直方图的图像检索技术[J].微电子学与计算机, 2008, 25 (4) :25-27.

[4]肖淑萍, 陈一栋, 杨建雄.基于小波变换和支持向量机的彩色纹理识别[J].微电子学与计算机, 2010, 27 (7) :117-120.

[5]蔡友杰, 陈秀宏.基于形态学的边缘检测[J].计算机应用与软件, 2009, 26 (5) :213-214.

[6]LINDE Y, BUZO A, GRAY R.An algorithm for vector quantizer design[J].IEEE Trans.Communications, 1980, 28 (1) :84-95.

[7]陈善学, 张艳, 尹雪娇, 等.矢量量化用于颜色图像检索的改进方法[J].电子技术应用, 2012, 38 (5) :125-127.

[8]YAIR E, ZEGER K, GERSHO A.Competitive learning and soft competition for vector quantizer design[J].IEEE Trans.Signal Processing, 1992, 40 (2) :294-309.

[9]郑秋海, 晁永胜, 任平红, 等.基于分块主颜色的图像检索方法研究与实现[J].中国石油大学学报:自然科学版, 2006, 30 (2) :143-146.

[10]林克正, 张彩华, 刘丕娥.基于分块主颜色匹配的图像检索[J].计算机工程, 2010, 36 (13) :186-188.

基于模糊矢量量化的语音转换方法 篇5

语音转换是通过对特定参数的改变使一个人发出的声音转换成另外一个人的声音, 既保持一个人的语义内容不变, 而只改变他的个人特征。作为语音信号处理的一个重要分支, 研究语音转换有着重要的意义。通过对语音相关参数的研究, 对语音识别、语音合成、说话人识别等语音信号的其它各个领域都有促进。目前国外对于语音转换研究的成果较多, Kawabara[1]等采用分析—合成方法来进行语音的转换, 他通过线性预测解卷积算法将语音分为嗓音源信号和声道传输函数, 通过声道传输函数的零点来得到共振峰的位置, 采用线性预测的参差信号作为激励来合成语音;Seneff[2]通过估计频谱包络的算法, 将语音解卷积得到语音信号的激励, 这一方法避免了提取基频而可以有效的实现基频和谱包络的转移。国内对于语音转换的研究起步较晚, 研究成果相对比较少, 初步采用TD-PSOLA方法进行男女音之间的转换;刘立[3]采用矢量量化的方法进行男女音转换的研究。但是总体来说语音转换是一项不成熟的技术, 仍然处于理论研究阶段, 转换效果还不能令人满意, 转换语音和目标语音还有较大差距, 经过转换的语音质量有不同程度的下降。

1 模糊矢量量化算法

模糊矢量量化采用模糊C均值聚类算法来实现矢量量化, 通过隶属度函数引入不确定性思想, 实现对硬聚类算法的有效扩展, 在实际应用中取得过较好的效果[4]。首先定义模糊C均值聚类算法目标函数为如式 (1) 所示

undefined

式中:undefined为某一观察矢量序列;undefined为各聚类中心组成的码本;undefined为一个模糊C均值隶属度函数集, uk (x) 为第k个聚类中心即第k个码字的隶属度函数, 它满足0≤uk (x) ≤1, undefined为模糊度;undefined为距离。

根据目标函数的模糊C均值聚类算式如式 (2) 所示

undefined

模糊C均值算法具有较好的收敛性[5]。利用输入训练矢量序列, 通过迭代计算聚类中心Yk及隶属度函数uk直到收敛后, 由新的聚类中心组成重估后的新码本。

2 基于模糊矢量量化的语音转换方法

在语音的产生模型中, 语音的频谱可以看作是激励谱和声道传递函数的乘积。激励谱主要是通过基音频率来描述, 声道传递函数可由共振峰参数、线性预测参数、线谱对参数、倒谱对参数等来描述。通过对语音的加窗分帧、预加重后, 对语音进行时域到频域的转换, 通过求取倒谱系数、线性预测系数、美尔倒谱系数等获取语音较为准确的幅度谱包络, 再通过幅度谱除去谱包络获得激励谱, 分别对激励谱和频谱包络进行基音周期的转换和频谱的转移, 最后通过PSOLA方法来合成转换后的语音。

语音转换主要包含两个阶段:训练阶段和转换阶段。在训练阶段, 主要是提取源说话人和目标说话人的特征参数, 通过基于声源激励的基频转换和基于声道滤波的共振峰转换来获取转换机制;在转换阶段, 根据训练阶段所形成的转换机制来实现对语音的基频和频谱包络的转换, 从而改变说话人的语音特征参数, 实现不同说话人之间的语音转换。

运用矢量量化的码书映射方法进行频谱包络的转换, 可以得到较好的效果。其具体实现过程包括:

训练阶段: (1) 对源语音和目标语音的频谱参数空间进行量化, 得到具有相同码字数目M的码本分别为V, U; (2) 由源说话人和目标说话人分别产生学习集, 然后对所有的单词逐帧进行矢量量化; (3) 运用动态时间调整 (DTW) 对两说话人相同的单词进行对齐; (4) 两说话人之间的矢量量化对应关系累积成柱状图, 将柱状图作为加权系数, 映射码书即为目标语音矢量的线性合成时的加权系数。

转换阶段:先将语音特征矢量进行矢量量化, 假设量化成第1个码字, 则转换后的特征向量为

undefined

式中hlk为映射码书H中的元素, 满足undefined为目标码书U的第k个码字。由于传统矢量量化方法的量化误差会引起特征空间的不连续性, 使得转换后的语音效果不是很理想。而采用模糊矢量量化技术的语音转换可以解决这样的问题。

3 仿真实验与结果

在本实验中, 选择了4名发音人的语料, 其中包括两名男性和两名女性。分析语料是元音“a”, 要求每个发音人以不同的基频平调发音40—50次, 其基频变化不小于一倍频程, 发音人尽量以自然的语音进行发音, 语音文件的采样频率8 kHz、量化精度为16 bit。

为了进行比较, 本文采用两种方法进行语音转换。首先选择Z变换法, 即双线性函数进行频谱包络的转移, 在语音转换中, 采用这一方法进行频谱搬移, 以达到改变语音单位冲激响应的频谱搬移的目的。基于该方法只需要对α参数进行处理, 方法简单容易实现。王聪修[6]运用式 (4) 的双线性函数进行谱包络的非线性搬移来实现语音的转换, 取得了很好的效果。

undefined

对语音信号进行预处理后, 进行频域分析。运用倒谱系数等获取语音信号较为准确的频谱包络, 再用幅度谱除以谱包络来获取相应的激励谱, 然后对频谱包络和激励谱分别进行转换。

对于频谱包络的转移, 双线性公式中α参数的提取至关重要, α是通过训练过程中对转换后MFCC系数和目标MFCC参数的欧氏距离最小进行求取获得的。从图1可以看到, α>0即男声-女声转换时, 频谱包络明显地向高频进行了转移, 声音变得尖锐;当α<0即女声-男声转换时, 频谱包络明显地向低频进行了转移, 此时声音变得低沉。

而对激励谱, 是通过FD-PSOLA方法对基音周期进行处理的, 选择了Moulines提出的压缩—扩展法进行处理, 通过频率轴的压缩-扩展实现了基音频率的转换。从图2可以看到, 当男声-女声转换过程时, 激励谱的频率明显增加, 对于超出最高频率部分的激励谱, 运用截断的方法进行转换;而女声-男声的转换过程中, 激励谱的频率明显降低, 对于高频区域的空白区, 通过将低频或高频部分的频谱进行复制来获取激励谱。

其次采用本文提出的模糊矢量量化技术的语音转换方法进行语音转换比较。语音转换效果的评价机制也是语音转换的一个重要方面, 语音工作者根据不同的主观和客观评价法来评价语音转换的效果。通常客观评价法是建立在对频谱特征参数的提取上, 能更好地表明转换的性能。而语音转换系统的输出最终是人耳感知的语音, 从这层意义上说主观评价法才是最终的评价方法。

本文选取的是主观评价法中常用的MOS意见得分法, 将语音质量分成几个层次, 分等级为1—5 (“很差”、“差”、“一般”、“好”、“很好”) , 然后对输出语音进行打分, 从而判断转换语音的质量。

作者选择实验室的10个同学对转换语音效果进行打分, 得到的测试结果如表1所示。

4 结束语

基于模糊矢量量化技术的语音转换可以有效地实现不同人之间的语音转换。为了与模糊矢量量化语音转换方法比较, 选用非线性频谱搬移的方法对共振峰进行了搬移, 从实验结果来看该方法进行声道模型的转移能取得一定的效果, 但是由于影响语音转换的参数除了基频和共振峰之外还有很多, 仍然需要加强对有效的语音特征参数的研究。

参考文献

[1]Kawabara H, Takigi T.Acoustic parameters of voice indi-viduality and voice quality control by analysis-synthesismethod[J].Speech communication, 1991, 10 (5) :491-495.

[2]Seneff S.System to independently modify excitation and/orspectrum of speech waveform without explicit pitch extrac-tion[J].IEEE Transactions on acoustics speech and signalprocessing, 1992, 30 (4) :566-578.

[3]刘立.基于时域的男女语音转换新途径的研究[D].北京:中国科学院声学所, 2000:37-42.

[4]赵力.语音信号处理[M].北京:机械工业出版社, 2005:81-97.

[5]Pao T L, Chen Y T.Detecting emotions in mandarin speech[J].Computational linguistics and chinese language pro-cessing, 2005, 10 (3) :347-362.

位图矢量化系统魔术棒功能实现 篇6

关键词:魔术棒,面状目标,自动矢量化

1 功能简述

位图矢量化时, 例如借助CorleDraw等作图软件画图时, 最基本的要素就是基本符号。基本符号通常由图元符号、注记、图片和OLE对象等组成, 最直接的应用是略图调制。图元符号是点、线段、 折线、曲线、闭合折线、闭合曲线、 矩形、椭圆 (圆)、圆弧、弦和扇形等, 图元在矢量图绘制中的体现, 是通用的符号。用户可以利用图元符号完成标注、复杂非规则符号 的组合等。图元符号最终可归结为点 (点图元)、线 (线段、折线、曲线、圆弧)、面 (闭合折线、闭合曲线、矩形、椭圆 (圆)、弦、扇形), 采用地图符号的方式表现。为了加快调制略图的速度, 在开发系统时提供了对同色目标的识别功能。

2 步骤与实现代码

2.1 面状目标自动识别步骤

该功能运用数学形态学和图像识别的理论与方法, 将颜色相同或相近的区域识别、追踪边界并形成矢量 (多边形) 目标。

其主要步骤为:

(1) 分色, 去除杂色的干扰。

(2) 保环退缩, 去除线状枝杈的干扰。

(3) 条件扩张, 恢复区域形状。

(4) 追踪边界。

经过以上4个主要步骤即可以实现面状目标的快速矢量化。

2.2 面状目标自动识别

3 结语

矢量量化编码 篇7

关键词:AVS编码,亚像素运动矢量,运动搜索,区域预测,二步搜索

0 引言

先进音视频编码标准(Audio Video Coding Standard,AVS)是我国具备自主知识产权的第二代信源编码标准[1],也是我国在音视频编解码领域与H.264及MPEG等国际标准竞争的有力武器。与H.264等单一的音视频编码标准不同,AVS是一套包含系统、视频、音频、一致性测试、数字媒体版权管理在内的完整标准体系[2],它将为数字音视频产业提供更全面的解决方案。

在AVS标准体系中,无论是以高清数字电视为应用的视频标准(AVS-P2),还是以移动多媒体为应用的移动视频标准(AVS-P7),它们都一致采用了几个关键的编码技术:帧间运动估计、帧内预测、整数变换/量化、基于上下文的二维变长熵编码、去块效应环内滤波[3]。其中帧间运动估计不仅是编码系统的关键部分,而且也是整个系统中耗费时间最多的部分,通常占全部编码时间的50%以上,因此作为运动估计核心技术的运动搜索算法,其性能的优劣将直接影响整个编码系统的运行效率和视频序列的重构质量。

在保证视频编码质量的基础上,本文根据视频序列的运动矢量在时间和空间所呈现的统计规律,对AVS-P2的帧间运动估计模块提出了一种新的亚像素运动矢量快速搜索算法,用于预测后续运动趋势,实验结果表明,该算法确实能够有效地加快运动搜索速度,提高编码效率。

1 亚像素运动搜索算法

1.1 亚像素运动搜索算法的研究现状

目前,减小亚像素运动矢量搜索复杂度的方法主要有3类:第1类如文献[4-6],它们利用物体运动的统计特性和匹配值空间分布特性,采用各自不同的搜索方法,排除可能性较小的亚像素点,减少搜索次数,在保证图像质量和编码效率基本不变的同时,节省了计算量;第2类如文献[7-8],它们主要通过创建各类数学模型,如运动补偿预测误差模型等,直接计算得到最匹配亚像素点的运动矢量,该方法虽然提高了运动估计的速度,但部分模型中使用的数学矩阵较为庞大,不利于硬件实现。

1.2 亚像素运动搜索程序流程

由于自然物体运动的连续性,以整像素为基本单位的运动估计矢量往往不能满足人们对视频质量的需求,因此典型的运动搜索主要包括整像素运动搜索和亚像素运动搜索两个部分。在AVS视频标准中,亚像素运动搜索包括1/2像素的运动搜索以及1/4像素的运动搜索。

在AVS视频编码框架中,亚像素搜索位于帧间运动估计的整像素搜索之后。它以整像素搜索的结果为中心,并搜索其周围的亚像素点从而得到最佳的亚像素运动矢量值。在亚像素搜索算法中,AVS视频编码参考模型RM提供了全搜索和混合搜索两种参考模式,其中全搜索模式的具体流程见图1a,混合搜索模式具体流程如图1b。

1.3 亚像素运动搜索的匹配准则

在亚像素运动搜索过程中,为了判断当前亚像素点的匹配程度,AVS参考模型RM提供的亚像素运动估计算法的匹配准则,它的函数表达式为

式中:SATD表示使用Hadamard变换的原始图像和预测图像之间的差值和;Ratemotion表示为编码相应运动向量所花费的比特数;QP表示量化参数。

1.4 亚像素运动矢量全搜索算法

亚像素运动矢量全搜索算法是一种传统的亚像素搜索算法,它能够达到最佳的编码效果,但它所消耗的编码时间也最长。在下文的快速搜索的程序流程中将有条件地用到这种亚像素搜索算法,这里先作简要介绍。如图2所示,中心的实心圆表示当前块通过整像素搜索得到最佳匹配块。亚像素全搜索法将以此为中心,先根据匹配准则对它周围8个1/2像素位置进行比较得到最匹配1/2像素;再根据匹配准则对此最匹配1/2像素周围8个1/4像素位置进行比较得到最匹配1/4像素;最后,从最匹配整像素指向最匹配1/4像素的矢量作为矢量残差与整像素搜索运动矢量值叠加,即得当前块的最佳的运动矢量值。

2 亚像素运动搜索算法

2.1 亚像素搜索窗误差匹配曲面特性

整像素搜索匹配曲面呈现不规则多峰曲面的特点[9,10],亚像素搜索窗内的匹配曲面普遍地具有单峰曲面的特性,有统计显示平均90%以上的亚像素搜索块都具有这种特性[11]。

根据亚像素搜索匹配曲面的单峰性可得到结论:搜索范围内亚像素的匹配值将随着它与搜索范围内全局最小点之间的距离减少而减少[12]。本文提出的亚像素运动矢量快速搜索算法就是利用这个结论使得亚像素的搜索过程能够快速地定位到该曲面的单峰上,从而得到亚像素最佳匹配值。

2.2 亚像素运动矢量快速搜索算法

针对上述亚像素搜索匹配曲面特点,同时结合AVS的特性,笔者提出一种新的亚像素运动矢量快速搜索算法。它能够在较大程度上,使亚像素运动矢量搜索的结果逼近通过全搜索而获得的最佳结果,流程图见图3,步骤如下:

1)根据整像素搜索结果确定亚像素搜索位置,若最佳整像素点与周围整像素点的匹配值均不相等,则跳至2),否则跳至5)。

2)利用整像素搜索结果,用2.2.1所述算法对1/2像素进行运动矢量搜索,确定最佳1/2像素点的位置。

3)如果最匹配1/2像素点仍为中心整像素点,则比较其他候选点的匹配函数值是否大于阈值T。如果它们大于阈值T,认为此时1/2像素运动矢量搜索的精度已经相当高,不再进行1/4像素的运动矢量搜索,故跳至6)。否则,继续进行1/4像素的运动矢量搜索,即继续进行4)。其中阈值T=α×中心整像素点匹配值,实验证明α取1.5时有较好的效果。

4)采用2.2.2所述的算法对最佳1/2像素点周围的1/4像素进行运动估计预测,确定最佳1/4像素点的位置,并且跳至6)。

5)采用全搜索的亚像素搜索算法。

6)将各步骤所得到的运动矢量叠加合成最终的运动矢量值。

2.2.1 1/2像素的快速运动估计算法

本部分算法的起始点是利用整像素运动矢量搜索而得到的最匹配整像素点及其运动矢量mv_1,接着根据亚像素匹配曲面的单峰性,将最匹配整像素点周围的整像素进行比较,从而预测最匹配1/2像素的所在区域,进而通过比较得出最匹配1/2像素点,具体步骤如下:

1)如图4所示,在整像素的搜索过程中,分别记录A,B,C,D,E这5个整像素点的匹配函数值J(x)(x∈{A,B,C,D,E})。

2)将最匹配整像素点周围的亚像素区域分成4个部分,如图4中虚线所示,根据式3预测出最匹配1/2像素所在区域,其对应位置见表1。图4中假设预测所得区域为B,A,D所围成的左上部分。

Area={J(B)+J(D),J(B)+J(E),J(D)+J(C),J(C)+J(E)}(3)

3)为了继续缩小预测范围,比较预测所得区域内除最匹配整像素点外的另外2个整数点,然后选择到匹配值小的整数点与最匹配整像素点距离相等的1/2像素作为候选点,如表1所示。图4中假设J(B)≤J(D),可预测最佳匹配1/2像素偏向B点,而a,b两点到A,B点的距离相等,即选取a,b,A作为候选点。

4)将3个1/2像素候选点按匹配准则进行比较,将匹配值最小的1/2像素点作为最匹配1/2像素点并记录最匹配整像素点到该点的矢量,作为1/2像素运动矢量搜索得到的运动矢量mv_2。

2.2.2 1/4像素的快速运动估计算法

本部分算法的起始点是利用上文1/2像素运动矢量搜索算法所得到的最匹配1/2像素点,接着以此1/2像素为中心在水平和垂直两个方向上搜索1/4像素匹配的最小点,从而得到最佳匹配的1/4像素点。具体步骤如下:

1)以上文所得到的最匹配1/2像素点为中心,将其匹配函数值与其水平方向的2个1/4像素点的匹配函数值进行比较,将这3个1/4像素点中的匹配函数最小值,作为此步骤中的最匹配1/4像素点。例如,图4中b点为最佳匹配1/2像素点,则比较J(1),J(2),J(b),将得到的最小匹配函数值所对应的点作为步骤2中垂直方向搜索的中心点。

2)将上步中确定的最匹配1/4像素点作为中心点进行垂直方向搜索,如图4中即比较1,3,4点的匹配函数值,取最小匹配函数值所对应的点作为1/4像素的搜索结果,从而得到运动矢量的1/4像素分量mv_4。

3 仿真结果和分析

以AVS-P2的参考软件RM52j为仿真平台,采用6个AVS标准测试序列进行仿真。这6个测试序列包括QCIF和CIF格式,涵盖运动较小、背景静止的视频会议序列,也涵盖了镜头快速放缩移动、背景变化剧烈的序列,因此测试结果具有普遍意义。测试条件:帧频25 Hz,编码80帧,帧间预测最多使用2个参考帧,采用IBBP序列,其中B帧为双向预测,使用CAVLC熵编码,使用RD优化和码率控制,QP值取36。仿真微机配置为Intel core2 Duo E8500@3.16 GHz CPU,2 Gbyte内存,Windows XP Professional操作系统。

为测试所提的算法性能,对每个测试序列进行3组仿真。为保证测试环境的公平性,3组仿真的整像素运动估计部分均采用UMHexagonS算法。在亚像素运动估计部分,第1组采用亚像素全搜索算法(HPFS),第2组采用AVS参考软件提供的亚像素全搜索算法和中心偏倚的亚像素搜索算法(CBFPS)的混合算法,第3组采用笔者提出的亚像素快速运动估计算法。

图6,7,8是3种算法对Paris视频序列进行编码后由统一解码器得到的视频画面。将它们与图5的原始画面对比,从主观角度观察,画面并不存在太大的差别。同时图9和图10的数据从客观上也说明与HPFS算法以及HPFS+CBFPS算法相比,本文算法中各个视频序列中的亮度峰值性噪比下降幅度均小于0.1 d B,同时码流的增加率也小于3%,所以可以认为本算法对图像质量以及比特率的影响较小。另外,通过表2的实验数据可知,同HPFS算法比较,本文算法减少了超过50%的亚像素搜索点数,这使得各个视频序列的编码时间平均缩短27%。与HPFS+CBFPS算法比较,本文算法使亚像素搜索点数减少大约35%,编码时间也节约20%。可见本算法充分利用了亚像素运动分布的规律,在减少搜索点数的同时也达到了较高的精度,和AVS参考模型RM中的方法相比,有效地减少了计算量,大大提高了编码时间,为实时编码的实现迈出了重要的一步。

%

4 结束语

本文通过对运动矢量分布特性的研究,得出了在亚像素领域内随着搜索点远离最优点,其匹配函数值将单调递增的结论。在此基础上提出了一种新的亚像素运动矢量快速搜索算法。仿真结果表明,相比于传统的HPFS算法以及HPFS与CBFPS混合算法,本文算法能够在对图像质量以及比特率的影响较小的情况下,有效地提高编码效率。同时该算法具有使用灵活、方便、效果明显等特点,可以将其简单地嵌入到目前的AVS编码器中,配合整像素运动估计的快速算法,能够有效地提高编码器的实时性,具有很强的实用性。

参考文献

[1]FAN Liang,MA Siwei,WU Feng.Overview of AVS Video Standard [C]//Proc.2004 IEEE Intl.Conf.Multimedia&Expo.[S.l].:IEEEPress,2004:423-426.

[2]AVS数字音视频编解码技术标准工作组.GB/T20090.2-2006信息技术先进音视频编码,第二部分:视频[S].北京:中国标准出版社,2003:4-9.

[3]虞露,胡倩,易峰.AVS视频的技术特征[J].电视技术,2005,29(7):8-11.

[4]ZHOU Cheng,TAN Yihua,TIAN Jinwen,et al.A fast algorithm ofsub-pixel motion estimation based on AVS[J].Journal of Image andGraphics,2007,12(9):1520-1524.

[5]魏志强,李翠苹,刘敏,等.自适应AVS_M分数像素运动估计快速算法[J].计算机科学,2008,35(10):250-252.

[6]范佑,刘鹏.H.264中整像素和分数像素快速搜索算法[J].浙江大学学报:工学版,2008,42(2):332-336.

[7]陈刚,贾振红.基于H.264的快速1/4像素精度运动估计算法[J].计算机工程与应用,2008,44(18):186-189.

[8]张荩尹,李波,姚春莲.基于最优位置计算的快速亚像素运动估计[J].计算机学报,2005,28(9):1541-1548.

[9]DU Cheng,HE Yun,ZHENG Junli.PPHPS:a parabolic prediction-based,fast half-pixel search algorithm for very low bit-rate moving-picture coding[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(6):514-518.

[10]张明,毕笃彦.块匹配运动估计算法研究进展[J].电视技术,2007,31(3):8-11.

[11]DONG Haiyan,ZHANG Qishan.A fast half-pixel motion vector searchalgorithm[J].Journal of Image and Graphics,2005,7(11):884-887.

地质绘图符号矢量化标准研究与应用 篇8

地质绘图符号是石油地质图件中表现地质对象的图形化语言, 规范一致的地质符号对地质研究人员正确理解地质图件、交流沟通地质观念具有重要意义。然而在实际地质图件绘制时, 各绘图软件集成与定义的地质符号各有不同, 造成各油田、各软件厂商所形成的成果地质图件的所用符号不规范、不一致, 导致表达同一地理信息的图件却有不同的表现形式。

为规范石油地质符号, 国家先后发布过三个版本的行业标准, 其中SY/T 5615—2004是现行行业标准, 替代了早期的两个版本。虽然《SY/T 5615-2004石油天然气地质编图规范及图式》 (一下简称5615) 中定义了部分符号, 但其为每个符号仅给出了一个简单的图例, 在计算机实现该图例时很难达到统一。且随着石油行业信息化的发展, 现有的符号已经不能满足现在业务的需求, 急需将符号进行扩充。而《SY/T 6931石油地质绘图软件符号规范》 (以下简称6931) 就是在标准5615基础上, 依据《SY/T 6932石油地质图形数据交换规范》 (以下简称6932) 为符号制定了基于XML的矢量化定义, 从而使得软件能以标准的方式读取、显示符号。

一、标准概述

6931首次采用XML语言给出了石油地质符号的矢量定义, 其中包括符号绘制所需的几何数据与样式数据。在标准中对已有标准5615进行了符号扩充, 增加岩性符号358个、水淹层解释符号16个、开发井别符号27个、探井井别符号2个、沉积相符号116个。并增加了岩性基本构成符号、Munsell岩石颜色与计算机RGB色值及色卡对应表、岩性符号绘制布局定义等内容[1]。

6932基于XML语言定义了平面图、录井图、剖面图、对比图、交汇图的图形文件格式。图形格式的定义主要包括文件头、打印模板、基本对象 (符号) 、样式对象、图层、数据、文件尾七个部分[2]。其中数据部分存放的是图形显示所需要的数据, 如点的坐标, 线的坐标序列, 圆的半径及圆心坐标等。而样式部分存储的是一个具体的显示方式, 如颜色、大小、填充方式等。这种定义方式实现了数据与样式分离及复用。

二、符号编辑器的设计

2.1符号编辑器基本图元及交互设计。符号标准不是一成不变的, 随着地质工作者对地质认识的提高, 地质符号的种类和样式也会随之变化, 因此标准需不停地制订、修订、再修订。基于以上需求我们在资源服务[3]的基础上开发了一个符号编辑器, 该编辑器不仅可编辑已有符号还可定义新的符号, 并可对符号的编码、矢量描述进行浏览。

根据编辑器绘制、编辑符号及生成、修改矢量代码的需求, 该符号编辑器整体包含两大模块 (如图1) :矢量代码生成模块及基本图元交互模块。其中矢量代码生成模块主要完成基本图元到6932标准的输入输出, 而基本图元交互模块完成基本图元类型定义及交互操作方法的实现。为每个大模块定义一个统一的实现接口, 使得模块中的相关类对外提供统一的调用方式。如:为矢量代码编辑模块设计PCGOpetration接口, 该接口包含Read Data () 、Read Emblish () 、Write Data () 、Write Emblish () 等函数接口。 (由于篇幅有限, 其他接口在此不多解释) 。这样设计的原因是, 6932标准中定义的一张图件将数据和样式分离, 为更好的适应6932标准, 故将矢量代码的读写函数也分成数据和修饰两部分。在基本图元模块接口中除基本鼠标控制函数接口外, 最重要的是Pick函数接口, 要求继承该接口的类实现对交互元素的属性拾取。除此之外还包括:Create Shape () 在屏幕上显示图元、Apply Style () 设置属性后改变图形显示, Updata () 更新等。

在对各类绘图软件符号编辑器分析的基础上, 我们为该编辑器设计了16种基本图元, 它们分别是:折线、任意多边形、曲线、封闭曲线、交叉线、矩形、三角形、棱形、六边形、五角星、平行线、椭圆、圆弧、扇形、圆缺和字符。在所有符号中岩性符号是比较特殊的一种, 它具有一定的规律性和组合性, 所以对岩性符号的绘制我们设定了如下属性:见表1

注:标*号的代表该属性可有可无

2.2符号共享模式。在定义完所有符号的XML描述之后, 将矢量化描述存储于关系型数据库中, 便于上层服务、相关软件的开发和应用。为了给应用软件提供统一、规范的符号, 我们开发了一套具有统一接口的符号资源服务。该服务屏蔽符号库数据库结构, 为应用软件提供应用接口, 各种应用软件以统一的方式访问符号资源[4]。该服务对符号资源提供管理功能, 可在需要的时候对符号进行扩充和修改。为解决符号库的同步和更新问题, 在数据服务中提供版本对比与获取功能, 从而使应用软件可获取最新版本的符号。

三、总结

《石油地质绘图软件符号规范》标准的制定极大推动了符号的标准化统一, 使得各应用软件有标准可依, 且避免了各软件厂商定义自己的符号而做的重复性工作。该标准的意义在于它的制定使得某一地质含义的符号具有统一的表述形式, 它就像一个通用的语言, 在地质工作者之间传递信息、避免歧义, 为地质研究人员扫除交流障碍。该标准现在双狐、卡奔等国产软件中得到了很好的验证。

参考文献

[1]国家能源局.SY/T 6931石油地质绘图软件符号规范[M].石油工业出版社, 2012.

[2]陈可为, 张全.基于XML的石油地质绘图图形文件格式规范[J].信息技术与标准化, 2012.

[3]陈可为, 吴钧, 张全.地质分析整合平台中数据服务的设计与实现[J].信息技术, 2010 (S4) .

上一篇:应急避难所下一篇:题型变化