欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

信源编码作业五:矢量量化LGB

程序员文章站 2022-03-22 22:59:52
...

矢量量化算法LGB

矢量量化,是70年代后期发展起来的一种数据压缩技术是一种高效的有损数据压缩技术,它具有压缩比大、解码简单和失真较小等优点。其基本思想是将若干个标量数据组构成一个矢量,然后在矢量空间给以整体量化,从而压缩了数据而不损失多少信息。矢量量化是香浓信息论在信源编码理论方面的发展,它的理论基础是香浓的率失真理论,率失真理论是一个存在性定理,并非是一个构造性定理,它未给出如何构造,矢量量化器的方法,矢量量化总是优于标量量化,这是因为矢量量化能有效地应用矢量中各,分量之间的4种相互关联性质来消除数据中的冗余度。自从1980年提出矢量量化器码书设计的LBG以来,矢量量化技术已经成功地应用到图像压缩和语音编码中。
LBG算法中的最佳矢量量化器设计的关键是最佳划分和最佳码书的设计。一是给定码书条件下寻找信源空间的最佳划分,使平均失真最小,由码书 和NNR得最佳划分,信源空间中的任一点矢量,如果它和码字的失真小于它和其它码字的失真;二是在给定划分条件下,寻找最佳码书,使平均失真最小。其思想如下所示:
(1)随意选取n个图像块作为码字;
(2)由这n个码字对所有的图像块进行划分,即分成n个集合,使每个集合中的图像块,都是与各码字距离中与对应的码字的距离 最小的;
(3)由这n个集合的重心,得到n个新的码字;
(4)如果这些个码字与原来的码矢量变化不大(收敛),就完成码书的训练,否则重新进行2、3步。

程序调试:

一、 trvqsp_img:获得图像矢量量化的码书。

调用参数格式:

trvqsp_img ts_img codefile [-b cb_size] [-t block_height][-w block_width] [-x row_size][-y col_size] [-h]

ts_img:是训练图像,也即待量化压缩的图像,假定为8位灰度级,使用光栅扫描顺序存储。
Codefile:以二进制格式存放码书的文件,有一个包含12个字节的文件头记录:向量的维度,以及码书的大小。
-b cb_size:码书的大小
-t block_height:块的高度(以像素为单位)
-w block_width:块的宽度(以像素为单位)
实际上由block_width 、block_height决定着码书向量的大小,也即每个输出块的大小。因此向量的维数是block_height *block_width。
-x row_size:输入图像的宽
-y col_size:输入图像的高
-h 帮助
二、 vqimg_dec—根据码书文件和压缩后的文件重构原始图像
其命令参数为 [-i cmpfile] [-o imageout]
-i cmpfile:压缩文件名
-o imageout:重建图像文件名
单步运行代码,命令参数为 -i earth_cmp_8_2x2 -o earth_8_2x2.img
三、vqimg_enc—根据码书对图像进行矢量量化
其命令参数为 [-i cmpfile] [-o imageout]
-i cmpfile:压缩文件名
-o imageout:重建图像文件名
单步运行代码,命令参数为 -i earth_cmp_8_2x2 -o earth_8_2x2.img

重构流程

信源编码作业五:矢量量化LGB

相关标签: 数据压缩