1

我的录音机遇到了一些令人讨厌的问题。有些人仍在将它与模拟调谐器一起使用,如果没有信号存在,模拟调谐器倾向于吐出“雪”。

问题是,当噪声被输入编码器时,它会变得非常疯狂,首先消耗所有 CPU,然后最终冻结。由于记录器的要点是无论如何都要保持正常运行,因此我必须弄清楚如何进行此操作,因此编码器不会暴露于它无法处理的数据。

因此,想法是创建“熵检测器”——一个简单而小型的例程,它将遍历帧缓冲区数据并计算熵指数,即图片中的数据实际上是如何随机的。

例程的结果将是一个数字,0 表示完全背面的图片,1 表示完全随机的图片 - 雪,即。

例程本身应该只是前向扫描,很少有局部变量可以很好地放入寄存器。

我可以使用 zlib 或 7z api 来完成这样的任务,但我真的很想自己做饭。

有任何想法吗?

4

1 回答 1

2

PNG 以这种方式(大约)工作:对于每个像素,将其值替换为它所具有的值减去剩下的像素值。从右到左执行此操作。

然后,您可以通过制作一个表格来计算熵(每个字符的位数),该表格显示哪个值现在出现的频率,从这些绝对值中提取相对值并为每个元素添加 log2(n)*n 的结果。

哦,您必须分别为每个颜色通道(r、g、b)执行此操作。

对于结果,取通道每个字符的位数的平均值,然后除以 2^8(假设每种颜色有 8 位)。

于 2010-12-05T10:06:33.053 回答