向量量化编码法_第1页
向量量化编码法_第2页
向量量化编码法_第3页
向量量化编码法_第4页
向量量化编码法_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

向量量化编码法向量量化編碼法(VQ,VectorQuantization)是以一向量值用另一量化值取代,已達成資料壓縮的目的將影像分割成許多大小相同的小方格,每個小方格包含了許多的像素,通常是由左而右、由上而下地串成一個向量。每個方格都有不同的像素值,編碼時只要是先收集完成具有代表性的向量,組成編碼簿(Codebook),找出其中跟此一個影像方格最接近的編碼字(Codeword),的索引值取代此向量(方格),組成一張索引表。解壓縮時只需利用索引值至編碼部中取出該區對應的向量即可還原。索引表即是VQ壓縮後的結果,因為索引表的體積通常會比原影像小方格的體積小很多,故VQ能有很好的壓縮效果(壓縮率通常是十六分之一)。但因壓縮時是取最接近的向量,所以會造成部分原始資料有失真,屬於失真影像壓縮法。適用於允許失真的數位影像、聲音等資料上,此法為學術界所廣泛使用向量量化編碼法(VQ,VectorQuantization)……………whkk=wxhii原始影像編碼字編碼簿(索引表)壓縮碼尋找最接近的編碼字壓縮端:向量量化編碼法(VQ,VectorQuantization)kk=wxhi編碼字編碼簿查表近似區塊重建影像wh解碼端:壓縮索引i尋找最接近的編碼字輸入向量X編碼簿C,包含K個編碼字{Yi}則最接近的編碼字Yj定義如下:||X-Yj||2

||X-Yi||2forallYiC其中X=(x1,x2,…XL)且||X||2=

xi2i=1LEuclideandistance向量量化編碼法(VQ,VectorQuantization)LBG演算法LBG演算法由Linde、Buzo和Gray三位學者所提出的方法。其主要精神是從一堆編碼字的樣本中以分群法找出代表每個群的編碼字,再由這些其代表性的編碼字形成一本編碼簿。步驟1選出三至五張具代表性的影像。將每一張影像切割成4x4的區塊。考慮一張512x512的影像,則共可被切割成(512x512)/(4x4)=16,384個區塊,其中每個區塊我們可視之為一個16維的向量。訓練出一本含有256個編碼字的編碼簿,其中每個編碼字均由16維向量所組成,其步驟如下:步驟2首先從這些區塊中隨意挑出256個區塊當作初始編碼簿。步驟3以這256個初始向量為重心,將其餘區塊分別歸群到這256個重心,也就是每個區塊去尋找與其距離最近的重心,以形成256個群。步驟4重新計算這256個群的重心,得到新的一本編碼簿。重複步驟3及4,直到每個群重心的變化不再很大時(收斂),即完成了編碼簿的訓練工作。LBG演算法的結果取決於初始向量是否足夠分散。也就是說,若初始向量太過集中的話,所編出來的編碼簿通常不具有很好的代表性。LBG演算法標準編碼的做法相當直接,將每個編碼字的向量一一計算它們之間的距離(Euclideandistance),並從中找出最接近的一組編碼字進行隻索引值來當向量的編碼。標準VQ編碼法~~FullsearchLBG演算法的結果,屬於較不穩定的,而且此方法需要大量的計算,是其缺點之一。設X=(x1,x2,x3,…,xk)為欲進行編碼的一組向量,Y={Y1,Y2,…Ym}為編碼簿,其中共有i個編碼字,每個編碼自均為一個k為向量,即Yi=(yi1,yi2,yi3,…,yik)。向量x所得的編碼為c。此法是最直接且最簡單的方法,但也是最耗時的方法。v=1(xv-Ycv)kl=1(xv-Ylv)k=minml=1√──√──細胞分裂法演算法細胞分裂法其主要精神是將初始編碼簿儘量分開,如此可以改善LBG演算法初始值過於集中的缺點,並且可以改進製作編碼簿的速度,以下是細胞分裂法的演算過程:步驟1選出三至五張具代表性的影像。將每一張影像切割成4x4的區塊。考慮一張512x512的影像,則共可被切割成(512x512)/(4x4)=16,384個區塊,其中每個區塊我們可視之為一個16維的向量。步驟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為重心,將其餘區塊分別去尋找與其距離最接近的重心;亦即將所有的區塊歸到這兩個重心,並重新計算各群之重心,得到Y’

及Z’。步驟5將Y’及Z’各分裂成兩個向量,並重複第3、4步驟,如此每一回合群的個數會以2的倍數成長,一直到產生足夠的編碼字個數。細胞分裂法演算法X=(x1,x2,...,xk)Z=(z1,z2,...,zk)Y=(y1,y2,...,yk)zi=xi+yi=xi-Y’=(y’1,y’2,...,y’k)Z’=(z’1,z’2,...,z’k)P=(p1,p2,...,pk)pi=y’i+Q=(q1,q2,...,qk)qi=y’i-R=(r1,r2,...,rk)ri=z’i+S=(s1,s2,...,sk)si=z’i-以Y為重心分群後重新計算各群重心以Z為重心分群後重新計算各群重心演算法中為一常數值,該值大小可一實驗來取得較佳的經驗值。利用樹狀結構漸進的方式產生編碼簿,可以不用每次都計算編碼簿個分群重心,因此可以有效的減少計算量。初始向量的選擇對編碼簿的結果,不會有絕對性的影響。細胞分裂法演算法較LBG演算法具有更好的效能,包括編碼簿可產生較佳的壓縮品質,以及製作編碼簿所花費的時間較少等優點。邊緣吻合向量量化法一般的向量量化壓縮法,都是針對事先劃分好的每個區塊分別做壓縮。完全不考慮區塊間的關聯性,但是一般的影像大多具有局部相似的性質,因此有效的利用已知的相鄰區塊資料來對尚未解碼的區塊做有效的預測,可增加壓縮效率。邊緣吻合向量量化法(SideMatchVectorQuantization~~SMVQ)利用已知的相鄰區塊來改進VQ壓縮率的方法,稱之為邊緣吻合向量量化法(SideMatchVectorQuantizationSMVQ),其作法是先用傳統的VQ編碼法對影像最上方第一列區塊及最左方第一行區塊作編碼,這些區塊稱之為seedblock。其餘剩下來的區塊(residualblocks)則只須利用這些seedblocks來設法還原即可。還原方法如下所述,先參考右圖,其中U和L為以還原的區塊,因此這兩個區塊內所有像素值皆為已知,而X則為未還原區。將X1這個像素值設為(U13+L14)/2,和U、L相鄰的像素值設為之後,從編碼簿中找出最接近的編碼字來還原X,此時只需和編碼字中的這幾個相對位置比較,也就是16維向量的編碼字中的第1、2、3、4、5、9及第13個位置上的值。X2=U14,X3=U15,X4=U16,X5=L8,X9=L12,X13=L16L13L14L15L16L4X1X2X3X4L8X6L12X9L16X16ULX邊緣吻合向量量化法(SideMatchVectorQuantization~~SMVQ)SMVQ的壓縮率是相當高的,因為真正編碼的只有第一列及第一行區塊的編碼而已。其餘的區塊均是利用相鄰的區塊來加以還原。除非該影像是一張幾乎完全沒變化的影像,否則其壓縮品質將會是無法被接受的。其原因是當上一回合所還原出的區塊有很大的誤差時,則下一回合還原出來的結果將會更差,而令人難以接受,此一問題稱為derailment。一種用來提昇side-matchVQ的壓縮品質的方法。利用交叉的方式,將奇數行或列的區塊儲作seedblock,而偶數位的區塊則用SMVQ來還原。如此,每

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论