![]() |
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Es ist alles eine Frage der Interpretation.
Unangenehm wird es da, wo jemand annimmt seine Interpretation wäre die einzig richtige. Gruß K-H |
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Zitat:
|
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Was loht sich denn bei der Lauflängenkodierung mehr?
Ein Wort aus einer Textdatei direkt zu komprimieren, oder es erst binär umzuschreiben und dann zu komprimieren? |
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Zitat:
|
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Ich meine die chars direkt zu komprimieren oder die chars erst in 0 und 1 umschreiben und dann von 0 und 1 die Lauflängencodierung zu machen.
|
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Bei der letzten Variante fängst du glatt mal mit der 8 fachen Datenmenge an. Der erste Schritt wäre, die redundanz zu reduzieren indem man 8 Symbole in ein Byte zusammen fasst und damit schon eine Kompression um 87,5% erreicht ;-)
|
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Beispiel:
Inhalt der Textdatei "ABCD" Inhalt nach einer "Übersetzung in binär" "01000001010000100100001101000100" Die Länge ist von 4 auf 4 * 8 gestiegn, also um 800%. |
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Zitat:
Wenn ich jetzt mal ein Alphabet ausschließlich aus A-Z Großbuchstaben annehme, dann hat die Nachricht "ABCD" einen Informationsgehalt von 4,7 Shannon pro Zeichen. man benötigt also 5 Bits um ein Zeichen zu übertragen, bzw. 5*4=20 bits für die ganze Nachricht. Für die Alternative Nachricht wären das 1 bit pro Zeichen = 32bits für die ganze Nachricht. Ich würde sagen, Ziel verfehlt :stupid: Wenn man das jetzt noch RLE codiert kommt da sowas raus: 10 11 40 10 11 10 11 40 11 20 11 40 21 10 11 30 11 20 Das könnte man schön speichern, man kommt pro Wiederholungseinheit mit 4 bits aus. (Die erst Zahl minus 1 speichern braucht 3 bits und das Datenbit) das macht bei 36 Wiederholungseinheiten glatt 144 bits. Hört sich nach einer Klasse Idee an :mrgreen: Für die Originalnachricht wurden übrigens 4 Bytes = 32 bits verwendet. Die RLE hat die Nachricht also auf das 4,5 fache aufgebläht! |
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Sollte man bei dem Algorithmus lieber mit 0 und 1 arbeiten, oder doch lieber normale chars des Alphabets?
|
AW: Tutorial Arbeiten mit Dateien auf binärer Ebene
Tja, das ist jetzt die Frage was du machen möchtest. Ein allgemein anwendbarer Algorithmus zur Datenkompression sollte mit Bytes arbeiten.
Falls du deine Eingabedaten kennst und weißt dass es sich nur um Zeichen des Alphabets handelt kannst du noch mehr machen: Kodiere die Buchstaben in 6 bits (also 64 verschiedene Zeichen) und danach kannst du einen allgemeinen Standardalgorithmus drüberlaufen lassen. Verlustbehaftete Kompression ist nochmal ein anderes Thema, das braucht man dann hauptsächlich bei Audio und Video, eher nicht bei Text. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz