【问题标题】:Compressing any image format using Fractal compression使用分形压缩压缩任何图像格式
【发布时间】:2015-01-05 07:34:16
【问题描述】:

我是图像压缩或图像处理方面的新手。我正在尝试从 Yuval Fsiher 的着名书中学习分形图像压缩。在本书的最后,他用 C 语言给出了完整的压缩-解压缩代码。我主要在 CUDA 中工作。 Fisher 目前的 C 代码只处理原始图像。

  1. 我的主要重点是了解压缩过程,然后修改上述代码,使其也适用于 BMP(彩色和灰度)图像
  2. 随后,我想通过将选定的函数转换为 CUDA 内核来加速代码。我计划专注于计算密集型的范围域比较。

所以我有以下问题:

在进行压缩之前是否有必要研究 BMP 图像格式,或者我可以将其视为矩阵并使用分形图像压缩对其进行压缩。分形压缩基于使用 IFS(迭代函数系统)在范围域映射中查找相似性的概念,IFS 基本上是仿射变换的集合。

【问题讨论】:

  • 您不会希望直接对 BMP 文件格式进行操作。有很多示例代码可以将 BMP 格式转换为原始像素数据矩阵。

标签: cuda parallel-processing gpu fractals image-compression


【解决方案1】:

分形压缩完全独立于源文件存储格式。一旦您将 BMP 加载到图像或缓冲区中,它将是原始像素(就像您读取 PNG 或 JPEG 一样)。如果你的 BMP 是未压缩的,它很容易阅读;一旦您通过标题,它就是原始像素。但是一个灵活的阅读器也支持不同的像素深度和压缩,所以最好找到一个库来为你做这件事,除非你只需要处理你自己的测试图像。

【讨论】:

  • 这意味着,我可以像考虑任何其他文件一样考虑 BMP 图像文件,然后对整个文件应用分形压缩。它会达到目的吗?它与仅在像素数据上应用分形压缩过去有什么不同吗?我怀疑处理仿射变换(范围域对之间的映射)的 IFS 需要专门应用于像素数据,而不是控制(标题、位图信息、调色板等)数据和像素数据组合的某种组合。我希望我能向你表达我的观点。
  • 您不会将 IFS 应用于线性文件数据,而是将其应用于 2D 图像数据。所以不管是什么文件格式,在进行IFS压缩之前都需要先转换成2D图像。
猜你喜欢
  • 1970-01-01
  • 2015-02-02
  • 2019-08-06
  • 2013-08-07
  • 1970-01-01
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 2020-02-29
相关资源
最近更新 更多