适用于 Android 的最快可用颜色量化算法是啥?

Posted

技术标签:

【中文标题】适用于 Android 的最快可用颜色量化算法是啥?【英文标题】:What is the fastest available color quantization algorithm for Android?适用于 Android 的最快可用颜色量化算法是什么? 【发布时间】:2014-08-16 22:39:06 【问题描述】:

我正在使用 NeuQuant 量化算法 (https://code.google.com/p/android-gif-project/source/browse/trunk/GIFproject1/src/com/ui/NeuQuant.java?r=5) 将 jpeg 缩小为 256 色图像,但速度非常慢(320x240 图像约 1 秒,640x480 图像约 3 秒)。即使有多个线程,我也无法将处理时间提高到合适的水平(理想情况下在每个图像范围内 100 毫秒)。

有谁知道更快的算法将图像的调色板减少到 256 种颜色?

【问题讨论】:

这有什么新的吗? 我发现了一个更快的算法(中值切割),但处理后的图像看起来很糟糕。所以我最终选择了多线程 neuquant 【参考方案1】:

提取 256 种颜色有点极端,但您应该看看 Median Cut Quantization。 这是一个实现:github link 另一种选择是octree。 不过,您确实应该对这两种解决方案进行基准测试,并寻找改进它们的方法。

此外,通过 RenderScript 运行算法可能会大大加快它的速度。

【讨论】:

【参考方案2】:

基于快速成对最近邻的算法可生成高质量的 256 色 8 位 PNG 图像,最大限度地减少红唇照片的颜色损失,并支持 256 种或更少颜色的透明度。该方法的时间复杂度为O(N log N)。

demo android 项目是用Java 编写的,使用按钮单击将示例图像直接转换为256 色。 github link

【讨论】:

以上是关于适用于 Android 的最快可用颜色量化算法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习应用:颜色量化实现示例

检测特定像素上的某种颜色并在检测到后发送点击的最快方法是啥?

Android Intent-filter 适用于 Magic,但没有 Hero,可能是啥问题?

找到素数最快的算法是啥?

适用于Android Studio的十六进制代码颜色库[关闭]

大型数据集最快的分类算法是啥? [关闭]