Vector Quantization的疑問

討論MP3、WAV、MIDI、WMA甚至其他數位音訊的播放、製作、轉換等。

版主: DearHoney

頭像
kouyoumin
神人
文章: 1612
註冊時間: 2001-01-05 08:00
來自: 中正紀念堂
聯繫:

Vector Quantization的疑問

文章 kouyoumin »

上了幾個禮拜的課, 因缺乏實例一直霧煞煞 >_<
想請教幾個關鍵問題:
1. 波形是如何對應到Vector?
2. 細胞狀的圖中, 兩軸. 邊界及重心分別的意義是?
節約用電 - VIA EPIA CN運作中
teamJDK
大師
文章: 125
註冊時間: 2002-10-09 08:00

Re: Vector Quantization的疑問

文章 teamJDK »

kouyoumin 寫:上了幾個禮拜的課, 因缺乏實例一直霧煞煞 >_<
想請教幾個關鍵問題:
1. 波形是如何對應到Vector?
2. 細胞狀的圖中, 兩軸. 邊界及重心分別的意義是?
直接問老師不是比較快? :P
WavOX
大師
文章: 168
註冊時間: 2003-02-24 23:34
來自: 香港
聯繫:

Re: Vector Quantization的疑問

文章 WavOX »

跟多些人討論等於多看其他参考書, 這亦可取. ;)
hotball
神人
文章: 322
註冊時間: 2001-09-28 08:00
聯繫:

Re: Vector Quantization的疑問

文章 hotball »

kouyoumin 寫:上了幾個禮拜的課, 因缺乏實例一直霧煞煞 >_<
想請教幾個關鍵問題:
1. 波形是如何對應到Vector?
2. 細胞狀的圖中, 兩軸. 邊界及重心分別的意義是?
怎麼把訊號對應到 vector 就是 VQ 的重點。不同的方式就會得到不同的 VQ 壓縮。例如,GIF 圖檔裡的調色盤就可以看成是一種 VQ,其中每個 pixel 的顏色值就是一個 vector。其它的壓縮方式,像是 VQTC,則是用 2x2 或 4x4 的 pixel block 當成一個 vector。

至於那個細胞狀的圖(Voronoi diagram),每個軸就是 vector 的每個成份。例如,像 GIF 的調色盤的話,就會有三個軸,分別是 R、G、B。每個細胞的重心就是那個 vector 的值。而細胞的範圍就是說,如果一個訊號落在某個細胞的範圍內,就直接用該細胞重心的 vector 去表示。
頭像
kouyoumin
神人
文章: 1612
註冊時間: 2001-01-05 08:00
來自: 中正紀念堂
聯繫:

Re: Vector Quantization的疑問

文章 kouyoumin »

teamJDK 寫:直接問老師不是比較快? :P
也對啦 ^^;
只是一直感覺老師很遙遠..
hotball 寫:至於那個細胞狀的圖(Voronoi diagram),每個軸就是 vector 的每個成份。例如,像 GIF 的調色盤的話,就會有三個軸,分別是 R、G、B。每個細胞的重心就是那個 vector 的值。而細胞的範圍就是說,如果一個訊號落在某個細胞的範圍內,就直接用該細胞重心的 vector 去表示。
謝謝指教, 有點頭緒了 m(__)m
也就是說, GIF的細胞是立體的? (PCM也可視為一次元VQ?)
一般比較常見的會將波形或圖形轉換為哪些vector成分呢?
節約用電 - VIA EPIA CN運作中
hotball
神人
文章: 322
註冊時間: 2001-09-28 08:00
聯繫:

Re: Vector Quantization的疑問

文章 hotball »

kouyoumin 寫:謝謝指教, 有點頭緒了 m(__)m
也就是說, GIF的細胞是立體的? (PCM也可視為一次元VQ?)
一般比較常見的會將波形或圖形轉換為哪些vector成分呢?
其實 VQ 就是那個 "vector",所以一次元是不會為 VQ 啦!不過 PCM 的確算是一種一次元的 quantization。當然這個 quantization 不一定要是線性的。像 A-law 或 μ-law 則是非線性的。而 VQ 的話則通常是非線性的,也就是細胞的形狀通常是相當不規則的。

至於一般情形會怎麼挑出 vector?像 GIF 的調色盤是最簡單的例子,也就是直接拿一個 pixel 的顏色值做為 vector(三維)。另外也可以用 2x2 區塊的顏色做為一個 vector,這樣就是 12 維。當然,維度愈高的話,壓縮比就可以做得愈大,但是表也要大才行。像 GIF 的 vector 是三維,表只有 256 個 entries,因此每個 pixel 只需要 8 bits 表示,等於是三倍的壓縮比(24 bits -> 8 bits)。而 2x2 區塊的 12 維的話,通常就會用 4,096 或更多個 entries 的表。以 4,096 個 entries 的話,就是 4x24 bits -> 12 bits,也就是八倍的壓縮比了。

聲音的話我就比較不熟悉了。不過我想比較可能的做法應該還是把一小段聲音,轉到 frequency domain,然後以 frequency domain 的各個 sub-band 當成一個 vector。當然也可能會有更複雜的做法。
頭像
kouyoumin
神人
文章: 1612
註冊時間: 2001-01-05 08:00
來自: 中正紀念堂
聯繫:

文章 kouyoumin »

12維空間...好抽象啊! ^^;
幼稚園兒的腦袋果然不適合太複雜的思考 XD
節約用電 - VIA EPIA CN運作中
hotball
神人
文章: 322
註冊時間: 2001-09-28 08:00
聯繫:

文章 hotball »

原來現在幼稚園就在教 VQ 了,真是太可怕了 XD
頭像
kouyoumin
神人
文章: 1612
註冊時間: 2001-01-05 08:00
來自: 中正紀念堂
聯繫:

文章 kouyoumin »

節約用電 - VIA EPIA CN運作中
頭像
kouyoumin
神人
文章: 1612
註冊時間: 2001-01-05 08:00
來自: 中正紀念堂
聯繫:

文章 kouyoumin »

有個疑問
用多維VQ表面上達到壓縮的效果了
可是Code Book不是也會很大嗎?

舉個很極端的例子
一張解析度AxB的灰階圖檔
用AxB dimension VQ壓縮
Code Book Size = 1(就是圖本身)
表面上好像把圖壓成0了
其實只是把東西轉移到Code Book裡而已呀?
節約用電 - VIA EPIA CN運作中
回覆文章