170 likes | 310 Views
דורון דמרי מקסים גורביץ מנחה:דמיטרי פורמן. Cached Vector Quantization. Introduction.
E N D
דורון דמרי מקסים גורביץ מנחה:דמיטרי פורמן Cached Vector Quantization.
Introduction. VQ is usually used for the purpose of data compression. There is no other coding technique exists that can do better than VQ. In our project we used VQ to compressed video teleconferencing by Using four different algorithm LBG, cached VQ, localized compression, Huffman and Energy. We analyses each of them, as it will be saw.
Project purpose. We represent the LBG algorithm with his performance and try to improve his compression. To achieved a better result we run a new algorithm, cached VQ, and we saw improvement compared to LBG. We used Huffman code to achieve better compression that we get in cached VQ alone. We also used Energy algorithm to made better compression.
Codebook building (LBG). We used theSplitting technique that produce large codebook from small one. This new codebook has two words and can be no worse than the previous codebook since it contains the previous codebook. This algorithm provide a complete design technique from scratch on a training sequence and will later be seen to suggest a vector analog to successive approximation quantizers.
Localized compression of video conferencing. According to the proposed model, recent localized history ofthe sequences is used to encode present frames based on ahierarchical approach.
Cached VQ algorithm. For each new vector, we search for the nearest existing vector in the codebook. And if they are close enough then we calculate their average regarding codebook vector’s weight and store it instead of original vector in the codebookThis algorithm is an adaptive in time propagation
If we didn’t find codebook vector close enough to the new vector and the codebook is not full, we add it to the codebook. If the codebook is full, we remove LRU (Last Recently Used) vector. This algorithm is intended to replace LBG algorithm to improvecompression performance. Cached VQ algorithm
Huffman encoder. After we run the Cached VQ algorithm we encode it by Huffman code, the table that for every codeword we gave a weight which represent the number of times it was used during encoding.
Energy encoding. We saw that the energy algorithm is useful for scalar encoding only and is harmful for encoding of bigger vectors. This is caused by using hierarchical codebooks, and energy algorithm is good for encoding by one codebook.
Comparison & Conclusion. We start with LBG algorithm and we saw C.R.=52 for PSNR=32 , and C.R.=13.7 for PSNR=35.6 For cached VQ we saw C.R=144 for PSNR=32, and C.R.=28.2 for PSNR=36. We add Huffman encoding for the cached VQ algorithm and we get C.R=203 for PSNR=32, and C.R.=41 for PSNR=36.
Comparison & Conclusion. We add Energy encoding to previous algorithm and we get C.R=215 for PSNR=32, and C.R.=51 for PSNR=36.
Comparison & Conclusion We saw that the energy algorithm is useful for scalar encoding only and is harmful for encoding of bigger vectors. This is caused by using hierarchical codebooks, and energy algorithm is good for encoding by one codebook.
Comparison & Conclusion The improvement from Cached VQ over LBG increases with lower PSNR Energy (on scalar encoding) have better effect when encoding for better quality since on higher quality more vectors are encoded by scalar encoding.
Comparison & Conclusion Improvement in encoding quality can be achieved by optimizing encoder parameters such as codebook size, thresholds for using vector of specific size and other codebook building parameters.
תודות רצינו להודות לפורמן דמיטרי שהנחה אותנו עם הרבה אכפתיות ומקצועיות ועל תמיכתו ועזרתו. רצינו להודות גם למהנדס המעבדה יוחנן ארז. תודה רבה !