Kompression von Zahlen
-
Hallo Leute,
wiedermal eine Frage: Weiss jemand eine Möglichkeit um Double Werte zu komprimieren? Am besten wärs wenn ich diese (64Bit) auf 32 oder 16 Bit runterkomprimieren könnte...nur hab ich keine Ahnung von Kompressionstheorie...Würde eine Erhöhung der Basis etwas bringen?
-
fragt sich verlustbehaftet oder nicht^^
wenn du verluste in bezauf auf genauigkeit eingehen kannst (z. b. wenn blos bis 2. nachkommastelle interessant ist, dann wäre er komprimierungsalgorithmus einfach
double d1 = 0.12; float f1 = static_cast<float>(d1);
ansonsten kamm man da sparen, was am größten ist: die mantisse, die nach IEEE format 52 bit einnimmt, wobei diese schon als gepackt gilt. da wirste kaum was rausholen können, müsste man probieren.
-
jo danke, mit dem float cast hast schon recht das ist mir auch schon gekommen...kann man denn zahlen grundsätzlich nicht komprimieren?
-
kann man denn zahlen grundsätzlich nicht komprimieren?
Doch. Ist ja doch nur eine darstellung in anderer (hoffentlich platzsparender) form.
Z.B.
einkommadrei (unkomprimiert) -> 1.3 (komprimiert)
-
Eine andere Möglichkeit wäre die Verwendung einen Fliegengewichtes, wenn dieselben Zahlen häufiger auftauchen. Also eine Liste aller verwendeten doubles anfertigen, und den Index darauf verwenden.
-
witte schrieb:
Eine andere Möglichkeit wäre die Verwendung einen Fliegengewichtes, wenn dieselben Zahlen häufiger auftauchen. Also eine Liste aller verwendeten doubles anfertigen, und den Index darauf verwenden.
Ich übertrage leider nur immer sehr große und wenige Doublewerte...da gestaltet sich das komprimieren ziemlich schwer..naja trotzdem thx