Dienstag, 7. Oktober 2014

Statt robuster, einfacher Dateiformate, lieber starke Kompression und Vorwärtsfehlerkorrektur?

Gezielte Redundanz?

Quelle: Dt. Fotothek


Auf der DV-Tagung der Max-Planck-Gesellschaft 2014 kam während eines Vortrages eine interessante Frage auf: „Warum nicht bestmögliche Kompression verwenden und das komprimierte Objekt dann mit gezielter Vorwärtsfehlerkorrektur behandeln?

Die Idee hat was. Hier ein paar der gesammelten Argumente pro und contra:

Pro

  • Spart Plattenplatz zumindest bei stark redundanten Dokumenten, wie zB. Videomaterial
  • An den Schutzgrad anpassbare Fehlerkorrektur. Wenn Material plötzlich besonders gesichert werden muss, dann kann man den Schutzgrad individuell erhöhen
  • Gerade für Objekte, für die nur Bitstream Preservation in Frage kommt, kann individuellerer Schutzgrad festgelegt werden
  • Zahl der Kopien kann ggf. auf zwei reduziert werden
  • Redundanz wird zielgerichtet ausgenutzt

Contra

  • erhöhter Aufwand beim Erstellen und Prüfen der Vorwärtsfehlerkorrektur
  • es ist immer "Auspacken" notwendig um auf die Inhalte zuzugreifen
  • Das Verpacken ist eine zusätzliche Fehlerquelle
  • Kompression und Vorwärtsfehlerkorrektur sind sehr rechenaufwändig
  • Funktioniert nur, wenn sich durch Kompression mehr an Bits einsparen lässt, als für die angestrebte Fehlerkorrektur notwendig ist
  • Für die richtige Auswahl des Schutzes sollte Bitfehlerverteilung bekannt sein
  • Komplexität erschwert das Verständnis des Inhaltes

Eine kleine Rechnung


Nehmen wir mal als Beispiel einen klassischen Buch-Scan in 300dpi. Als unkomprimiertes Bild (mit 1717x1027 Pixeln) im TIFF 6.0 baseline belegt es 31MB.

Mit jpeg2000 baseline ist das Bild auf 17MB (verlustfrei) eingedampft (PNG 18MB). Damit stünden 31-17=14MB für künstliche Redundanzen zur Verfügung.

Unter Verwendung von vdmfec wäre es beispielsweise möglich, diese Redundanzen hinzuzufügen. Mit den Default Werten von n=18 und K=14 und der  eingestellten Blockgröße von 1024*1024Bytes=1MB würden n=18 Blöcke für jeden der K=14 Eingabeblöcke geschrieben, es könnten also n-K=4 aus jeder der n-Blöcke verloren gehen.

Für das obige Bild würden sich dann 22MB Speicherplatz für die gesicherte Fassung ergeben.

In dem Fall ließe sich eine Ersparnis von 31-22=9MB erzielen und das Bild wäre trotzdem gegen Blockverluste geschützt.

Leider kodiert vdmfec nicht die Parameter bei der Erstellung der fehlerkorrigierten Datei mit. Welche Vorwärtsfehlerkorrekturprogramme bzw. -formate sinnvoll wären,  wäre dann aber einen eigenen Beitrag wert.