《矢量量化典型的快速搜索算法》由会员分享,可在线阅读,更多相关《矢量量化典型的快速搜索算法(6页珍藏版)》请在金锄头文库上搜索。
1、矢量量化典型的快速搜索算法、三角不等式删除算法定理4:假定目前最小失真为dmin二d(x, y p),令y i, y p为相异码字,0乞i,p空N-1, x为输入矢量,若:则:d( y p, y J/4 dmind( x, y i) 一 dmin证明:由 d(y p,yi)/4 一 dmin 得2根据三角形两边之和大于第三边知:J d(X, yi ) +. dmin - d( y p , yi ) - 2 dmin所以d(x,yi) - dmin即 d(x,yi) dmin定理5:假定目前最小失真为 dmin =d(x,yp),令yi,yp为相异码字,0 i, p N -1, x为 输入矢量,
2、若:vd(y j,yi Hd(x,yj) V d min则:d(x, y i)dmin证明:由三角形的两边之差小于第三边知:Jd(yj,yi - Jd(x,yj)| Y Jd(x,yj当x , yi , yj的终点在同一直线上时,等号成立,即Jd(yj,yi Jd(x,yj兰Jd(x,yJ又因为 Jd(yjM )Jd(x,y所以. dmin 空 d(x,yi)。二、均值不等式删除算法定理6:假定目前最小失真为 dmin =d(x,y p), mx为码字yi的均值,如果m - mx K Jdmin /k则:d(x,yj dmin证明:由已知得(5 一叫)- k ,即由绝对误差不等式定理知k 12
3、(Xi -yQ) 一 kdminl 30k 1k J( (Xi - yH)Xi yilI Z0l 30kJ2 2 )=minbreak;endendif dmin min=d; codenumber(i)=j;endend d1=d1+min;end%解码for i=1:nn re_sig(i,:)=codebook(codenumber(i),:);endfor ni=1:nnfor nj=1:ssf1=floor(ni./num);f2=mod(ni,num);if f2=0f2=num;f1=f1-1;endm1=floor(nj./siz_word)+1; m2=mod(nj,siz_
4、word);if m2=0m2=siz_word; m1=m1-1;end re_re_sig(siz_word*f1+m1,siz_word*(f2-1)+m2)=re_sig(ni,nj); end end figure(2);subplot(1,2,2);imagesc(re_re_sig);colormap(gray);图1 原图像2 Fieuro 2-回Eil* E-cIl I 吐昕 Ijts&r t Zool jlsslc-top 址】ndow Rfl-lp fi #鸟題目娱 E B EJ图2编解码后的图像二、所用到的函数: 用 LBG 算法设计码书函数 function desi
5、gn( ) %调入和显示原始图像 figure(1);sig=imread(lena.jpg); %求出图像像素的行数和列数 m_sig,n_sig=size(sig);%设置码字的大小 siz_word=4;%设置码书的大小 siz_book=256;imshow(sig); %将图像分割和变形 num=m_sig/siz_word; %竖直方向块的大小 ss=siz_word*siz_word; % 矢量的长度 nn=num*num; % 块的大小 re_sig=;%图像分快处理for i=1:numfor j=1:num sunny=sig(i*4-3:i*4,j*4-3:j*4); s
6、unny=sunny(:); re_sig=re_sig;sunny;end end %码书初始化 codebook=; for i=1:siz_bookr=floor(rand*nn)+1; codebook=codebook;re_sig(r,:);end %LBG 算法 sea=100;while sea=minbreak;endendif dminmin=d;CodeNumber(i)=j;endendVectorNumber(CodeNumber(i)=VectorNumber(CodeNumber(i)+1; d1=d1+min;endendsave codebook_256 codebook;计算矢量距离函数function z=VectorDistance(ss,Vector1,Vector2)for i=1:ssz=z+(Vector1(i)-Vector2(i).A2;end