KurtZ: Komprimieralgorithmus in JavaScript?

Beitrag lesen

Kurtz gegrüßt

wie du siehst wären das aber nur 7 Bit und du müsstest shiften! Um dieses zeitintensive shiften eventuell ganz zu vermeiden könntest du mit geshiftetetn Tabellen a 256 Einträge auskommen.

man könnte ja auch 7 gerade sein lassen, in dem man auf den Übertrag verzichtet so wie man bei Farbcodierungen auf mit 16 Bit ein Bit auslässt, udn immer rund anfängt.

Gut, ie Kompressionsrate wäre zwar schlechter aber man bräuchte weniger Tabellen und Operationen.

aber ich glaube nicht das lookups in JS viel schneller als shiften ist, in meinem Benchmark auf Mozilla shiftet es sich 25% schneller als das Ergebnis nachzuschlagen.

  
  
x=[];  
rep=10000;  
u=255;  
x[u]=1;  
  
start1=Date.now();  
  
for (y="",i=0;i<rep;i++) {  
  y=u>>7  
}  
  
start2=Date.now();  
  
for (z="",i=0;i<rep;i++) {  
  z=x[u];  
}  
  
end=Date.now();  
  
alert((start2-start1)/(end-start2));  
alert(y);  
alert(z);  

Also lieber den Übertrag in den nächsten key reinshiften und gleich eine 16bit statt 8bit Tabelle anlegen, das vereinfacht und beschleunigt die Dekodierung doch deutlich. :)

Die Tabelle könnte in Extremfällen auch noch größer werden, abhängig von der größe des Wortschatzes.

Hmm da müsste uns Marc schon mehr Infos geben...

Grüße
 Kurt