Forum Clubic

[ C ] Problème de compression / parenthésage

Bonsoir,
alors voilà j’ai quelques problèmes. Je code en C pour un logiciel embarqué de caméra (ELTEC Hipercam1) sous tornado VX-Works. Je capture les images de la caméra et les stocke dans des buffers. Je fais la différence de deux images avec la fonction abs() et ensuite je compresse le résultat de cette différence à la façon RLE.

Le problème est qu’à certains moment la compression à l’air de bien fonctionner mais qu’à d’autres elle laisse passer des paquets d’octets (genre 00 00 00 00 au lieu de 84 00).
Ensuite j’ai peut etre des problèmes de parenthésage à certains endroits, j’attends vos avis, merci.

Voici le code de cette différence puis compression.

                  src  =(unsigned char*) adr[3];
			dst  =(unsigned char*) adr[4];
			old  =(unsigned char*) adr[(NumBuf+1) % (NBBUF-2)];
			nouv =(unsigned char*) adr[(NumBuf+2) % (NBBUF-2)];

			for(count=0;count<(W*H);count++)
			{	
				
				val=abs(((int)*old) - ((int)*nouv))/2;
				cpt=1;
				if(val>2)
					while((count < W*H) && ((abs(((int)*(++old)) - ((int)*(++nouv)))/2)==val))
					{
						cpt++;
						count++;
					}
				else
				{
					val=0;
					while((count < W*H) && ((abs(((int)*(++old)) - ((int)*(++nouv)))/4)==0))
					{
						cpt++;
						count++;
					}
				}
				if(cpt>1)
				{
					while(cpt>0x7F)			
					{
						*dst++ = 0x80 + 0x7F;
						*dst++ = val;
						cpt -= 0x7f;
					}
					*dst++=0x80+cpt;
					*dst++=val;
				}
				else
				{
					while(cpt--)*dst++=val;
				}
}

Merci d’avance pour votre aide.

sur ce bout de code, peut etre -> *dst++ , essaie en rajoutant des parenthese( soit (*dst)++ ou *(dst++) )

cette partie fonctionne sans problèmes :-/