Linde-Buzo-Gray (LBG) 算法
Linde-Buzo-Gray (LBG) 算法用于有效地设计具有最小失真和错误的码本。
LBG 算法是由 Yoseph Linde、Andres Buzo 和 Robert M. Gray 在 1980 年提出的。它是代码生成中最常见的算法,可以从训练集生成具有最小误差的码本。
训练集是一组从图像向量中导出的向量。代码向量必须最小化失真。
LBG 算法假设码字长度是固定的。
这是一个迭代过程,基本思想是划分训练向量组,并使用它从一组中找到最具代表性的向量。收集来自每组的这些代表性向量以形成码本。
LBG算法的过程:
- 将给定的图像分成块,使每个块都显示为一个 d 维向量。
例如,如果图像大小为 712×712,块大小为 4×4,则块数等于 (712*712)/(4*4)=31684。
每个块都是一个 16 维的向量。 - 初始码本是随机选择的。
- 初始选择的码本设置为质心,其他向量根据最近的距离分组,质心类似于k-mean聚类。
- 找到每个组的新质心以获得新的码本迭代。重复步骤 2 和 3,直到每个组的质心收敛。
LBG算法流程图: