我一直在研究用SVD进行图像压缩。然而,我看不出使用奇异值分解和截断所使用的奇异值的数量会如何减少内存。原始图像的大小为m × n,因此使用m × n ×像素大小的字节。在奇异值分解之后,得到的矩阵仍然是m × n。难道它不使用相同的空间量吗?
这是因为图像的秩- k
近似值要求您仅存储(考虑将图像保存到文件中)第一个k
奇异向量和奇异值,导致m x k
存储空间而不是m x n
。然后,当您想要在屏幕上呈现图像时,您显然将其解压缩回m x n
大小(就像您对任何其他类型的压缩所做的那样),但这不是图像的真实大小,只是渲染。