基本介紹
- 中文名:分類矢量量化器
- 外文名:Classified vector quantization
概要,算法,編碼簿,區域編碼簿,通用編碼簿,
概要
使用CVQ的優點是使用許多小型的編碼簿,每一個專門為某一類向量而設計,可以達到和使用單一一個大型編碼簿相當的重建質量,且搜尋時間會小很多。此外,CVQ也可以用在Mean/Residual vector quantization (參見乘碼) 技術的余值向量上。
算法
第一步:
將原視頻切割成大小為n (通常n = 4 x 4 = 16) 且不相重疊的方塊,每一個方塊都經過一個以邊的方向來做分類的分類器,將其歸類為M類當中的一類;這些類別可能包括暗視頻方塊 (Shade block,沒什麼明顯梯度的方塊) ,中度範圍方塊 (Midrange block,具有中等梯度但無明顯邊的方塊) ,垂直邊方塊,水平邊方塊,或邊方塊,以及混合型方塊 (有邊但方向不清楚)。
將原視頻切割成大小為n (通常n = 4 x 4 = 16) 且不相重疊的方塊,每一個方塊都經過一個以邊的方向來做分類的分類器,將其歸類為M類當中的一類;這些類別可能包括暗視頻方塊 (Shade block,沒什麼明顯梯度的方塊) ,中度範圍方塊 (Midrange block,具有中等梯度但無明顯邊的方塊) ,垂直邊方塊,水平邊方塊,或邊方塊,以及混合型方塊 (有邊但方向不清楚)。
第二步:
每一個分類後的方塊向量各以其所屬之編碼簿做編碼。編碼簿的大小可以各有不同,分別為,,而且每一個方塊在選擇最接近的向量時,也可以採用不同的有損估算函式。整個碼向量數目為: 。
每一個分類後的方塊向量各以其所屬之編碼簿做編碼。編碼簿的大小可以各有不同,分別為,,而且每一個方塊在選擇最接近的向量時,也可以採用不同的有損估算函式。整個碼向量數目為: 。
第三步:
將所選出的碼向量指針送給接收端,接收端則用這些指針解碼。
將所選出的碼向量指針送給接收端,接收端則用這些指針解碼。
編碼簿
每一個視頻向量,X,與一組代表性樣本或碼向量(Codevectors),,作比對的工作。這些碼向量共同組成的即為編碼簿(Codebook)。
區域編碼簿
一般而言,要編碼某一張特定的視頻,最最佳化的編碼簿應為使用這張視頻本身為訓練集所產生的,此種編碼簿稱為區域編碼簿(Local codebook)。
使用區域編碼簿通常會有相當好的壓縮效率,這是因為該視頻所特有之視頻特徵(如線、邊等等)都會被自己的區域編碼簿所充分地考慮進去,因而都找得到足以代表的碼向量。
然而,區域編碼簿會有兩大缺點:首先,每編碼一張視頻就得產生它所獨用的編碼簿,這是相當費時的工作,也會讓即時處理變的不可能;其次,區域編碼也得提交給接收端,這個額外的數據量會大大地降低壓縮效率。
通用編碼簿
要解決區域編碼所帶來的問題,可以使用多張具代表性的視頻作為訓練集,並產生通用編碼簿(Global codebook)。
如果要編碼的視頻屬於同一類(就解析度、視頻特色、詳細內容等等而言),全體編碼也將導致很好的效果;反之,如果要編碼的視頻有很大的不同,通用編碼簿的效率可能就會遠遠不如區域編碼,尤其是如果所選用的訓練集又很小的情況下。