适用于 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,可能是啥问题?