1

レコーダーに厄介な問題が発生しました。一部の人々はまだアナログ チューナーでそれを使用しています。アナログ チューナーは、信号が存在しない場合に「雪」を吐き出す傾向があります。

問題は、ノイズがエンコーダーに供給されると、完全に異常になり、最初にすべての CPU を消費し、最終的にフリーズすることです。レコーダーの主なポイントは何があっても稼働し続けることなので、エンコーダーが処理できないデータにさらされないように、これをどのように進めるかを考え出す必要があります。

したがって、アイデアは「エントロピー検出器」を作成することです。これは、フレームバッファデータを調べてエントロピーインデックスを計算する、つまり画像内のデータが実際にランダムである方法を計算する単純で小さなルーチンです。

ルーチンの結果は数値になり、完全に後ろの画像の場合は 0 になり、完全にランダムな画像 (つまり雪) の場合は 1 になります。

ルーチン自体は順方向スキャンのみで、レジスタに適切に収まるローカル変数はほとんどありません。

そのようなタスクには zlib または 7z api を使用できますが、自分で何かを調理したいです。

何か案は?

4

1 に答える 1

2

PNG は次のように機能します (おおよそ): 各ピクセルについて、その値を、その値から残っているピクセルの値を差し引いた値に置き換えます。これを右から左に行います。

次に、現在表示されている値の頻度の表を作成し、これらの絶対値から相対値を作成し、各要素の log2(n)*n の結果を追加することで、エントロピー (1 文字あたりのビット数) を計算できます。

ああ、これを各カラー チャネル (r、g、b) ごとに個別に行う必要があります。

結果を得るには、チャネルの文字あたりのビット数の平均を取り、それを 2^8 で割ります (色あたり 8 ビットと仮定)。

于 2010-12-05T10:06:33.053 に答える