Komprimieren und Packen: Mehr Informationsgehalt bitte
Donnerstag, den 02. Januar 2014 um 18:00 Uhr

WinzipZum Versenden per Email oder zum Speichern auf USB-Stick, Diskette oder im Internet: Wenn Dateien zu groß sind, hilft das Komprimieren oder “packen” der Dateien, um sie kleiner zu bekommen. Windows und Linux unterstützen standardmäßig das ZIP-Dateiformat, mit dem man Dateien sehr leicht in ein ZIP Archiv packen kann.

1988 traf sich die internationale Standardisierungsgruppe Moving Pictures Experts Group, kurz "MPEG", in Hannover, eigentlich mit dem Ziel, Bildsignale für die heute längst vergessene Video-CD zu verkleinern. Schon das Kürzel MP in MP3, das für bewegte Bilder, also Moving Pictures, steht, lässt erahnen, dass es ursprünglich gar nicht um Musik ging. Sehr bald schon setzte sich das MP3-Verfahren aber in der Musikbranche durch. Mit MP3 war es möglich Musikdaten drastisch zu komprimieren ohne die Audioqualität nennenswert zu senken. Das war ein entscheidender Vorteil, insbesondere zu Beginn der 1990er, als das Internet nur über geringe Bandbreiten verfügte. Heute ist das MP3-Format in vielen Hardware-Playern integriert und wird von nahezu allen Abspielgeräten unterstützt.

Die Datenkompression ist in der heutigen Flut von Informationen nicht mehr wegzudenken. In fast allen Disziplinen in denen Daten archiviert oder ausgetauscht werden müssen, kommen Kompressionsverfahren zum Einsatz. Hierbei wird zwischen verlustfreier und verlustbehafteter Kompression unterschieden. Kann nun durch eine Rückkodierung die ursprüngliche Mengevollständig wiederhergestellt werden, so bezeichnet man das Verfahren als verlustfrei. Gehen jedoch durch die Umformung Informationen verloren, so dass die ursprüngliche Datenmenge nicht mehr wiederhergestellt werden kann, so bezeichnet man diese Verfahren als verlustbehaftet.

Für die Datenkompression ist Entropie von hoher Bedeutung. Sie ist ein Maß für den mittleren Informationsgehalt einer Nachricht. Jede Datenkompression ist im Prinzip ein Verfahren, mit dem Daten so reorganisiert werden, dass ihr Informationsgehalt steigt.

Weiterlesen...
 
  • Datenkompression

    Donnerstag, den 02. Januar 2014 um 17:20 Uhr

    Datenkompression findet heutzutage bei jeglicher Übertragung von digitalen Daten statt. Sie hilft Ressourcen bei der Übertragung zu sparen (z. B. Bandbreite oder Speicherplatz) indem die Daten in einer Form übertragen werden, die ̣- abhängig von der Anwendung – möglichst minimal ist. In diesem Artikel stellen wir ein Datenkompressionsprogramm in C++ basierend auf der Huffman-Kodierung vor. Diese findet ihren Einsatz im bekannten ZIP-Dateiformat und beruht auf der so genannten Entropiekodierung.

  • Künstliche neuronale Netze in C#

    Samstag, den 23. Juli 2011 um 20:00 Uhr

    Künstliche neuronale Netze sind Netze aus künstlichen Neuronen. Sie sind ein Zweig der künstlichen Intelligenz und prinzipieller Forschungsgegenstand der Neuroinformatik. In dem folgenden Artikel werden künstliche neuronale Netze beschrieben und die korrespondierenden Algorithmen in C# implementiert. Zum Ende wird eine leistungsfähige Bibliothek entwickelt, mithilfe derer ein Programm (WPF) zur optischen Zeichenerkennung realisiert wird.

  • Speisende Philosophen

    Sonntag, den 20. Februar 2011 um 20:58 Uhr

    Bei dem Philosophenproblem (engl. Dining Philosophers Problem) handelt es sich um ein Fallbeispiel aus dem Bereich der Theoretischen Informatik. Dabei soll das Problem der Nebenläufigkeit illustriert werden und die Gefahr von Deadlocks. Das Problem wurde von Edsger Wybe Dijkstra formuliert und wird seither auch immer als Testproblem für neue Prozeß-Synchronisations-Algorithmen verwendet. In diesem Beispiel wird eine maximal parallele Lösung mit beliebig vielen Philosophen und Sitzplätzen in Java vorgestellt.

  • C/C++ Profiler

    Montag, den 06. September 2010 um 19:56 Uhr

    Profiler sind nützliche Programmierwerkzeuge, die das Laufzeitverhalten von Software analysieren. In der Softwareentwicklung existieren unterschiedliche Problembereiche, die durch ineffiziente Programmierung ausgelöst werden. Ein Profiler hilft dem Entwickler durch Analyse und Vergleich von laufenden Programmen die Problembereiche aufzudecken. Daraus lassen sich Maßnahmen zur strukturellen und algorithmischen Verbesserung des Quellcodes ableiten. Für native C/C++-Programme gibt es eine Reihe kostenfreier Profiler, deren Funktionen in diesem Artikel vorgestellt werden sollen.

  • Client-Server-Modell

    Dienstag, den 24. August 2010 um 11:20 Uhr

    Viele Anwendungen funktionieren in einer Client/Server Umgebung, das bedeutet, dass die Client-Rechner Kontakt aufnehmen zu einem Server, der meist ein Rechner mit sehr großer Eingangs-Ausgangs-Kapazität ist, welcher ihnen die Dienste bereitstellt. Zum Austausch der Daten im Internet hat sich XML mittlerweile als Standard zur Informationsübermittlung durchgesetzt. Zu den wichtigsten Merkmalen zählen die für Menschen lesbare Form und die Plattformunabhängigkeit. In diesem Artikel wird ein Client-Server-Modell in C# entworfen, mit dem serialisierte XML-Dokumente über ein Netzwerk übertragen werden können.


MSDN Virtual Labs

SourceForge

Sun Java

Codeguru | C# Articles
This is a Codeguru directory of articles on the C++ topic of .NET / C#.