Transform Coding

Transform Coding(TC)是一种很流行的压缩编码的方式。今天才算完全弄明白。写个备忘录^_^

 

设一个图像原始VLAD矩阵(uncompressed matrix)A为64*64维。经过PCA降维以后为1*64,设为矩阵B。注意到B是经过PCA降维后得到的,因此其已经过eigenvector的排序,其主成分靠前。

 

TC编码器会根据算法为B的每一维分配n个bit来储存编码。其类心的个数为2^n。最后有很多维得出的n=0,舍去。如为第一维分配3个bit,则第一维需训练8个类心。47位置后n=0,舍去,则最后的向量变为了47维。而算法中巧妙的在于,所有的n(n1,n2...n47)之和正好为64(原维度)。找出每个维度对应的类心,如第一维对应的是7,第二维是3,等等等等。因此所得向量为(7,3,...,1,1)共47维。而7按位展开为111,正好是3位,(还有000,001,010等类心)。因此最后每幅图像用64bits保存,便可以搞定。

 

最后query时也有一些要注意的地方。

(1)将query向量与类心算距离,并保存。

(2)最后判断query与base中向量谁近时,用非对称距离 ,而不是对称距离计算(即用对应类心的距离之和)。

 

因此,TC将图像的压缩存储以及query都很好的解决了。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值