Chargement…
Chargement…
À chaque front actif avec i_ce='1', calculez delta = i_pixel - q_prev. Si abs(delta) < threshold, alors q_next = i_pixel. Sinon, q_next = q_prev + (k * delta) / 256. i_k représente un coefficient non signé Q0.8. La division entière est tronquée vers zéro.
q_prev est mémorisé sur 8 bits non signés et devient o_pixel. Saturez toute valeur intermédiaire hors de 0 à 255. Quand i_ce='0', conservez la sortie. Le reset synchrone actif à l'état haut remet le pixel mémorisé à zéro. Une différence égale au seuil passe par la branche lissée.
Le testbench vérifie les variations montantes et descendantes, la branche de suivi, l'égalité au seuil, le gel par i_ce et le reset.