HuffYUV

HuffYUV ist ein sehr schneller, verlustfreier Videocodec, der ursprünglich von Ben Rudiak-Gould als freie Software für Windows entwickelt wurde. Sie wurde in C++ programmiert. Das Ziel war es, einen Ersatz zum nicht komprimierten Y′CBCR 4:2:2 für die Aufnahme zu schaffen. HuffYUV wurde natürlich auch für selbstgebaute Scanner als «Rohformat» eingesetzt, aber heute ist für diese Nutzung FFV1 eine wesentlich bessere Wahl.

Trotz des Namens handelt es sich nicht ums Farbmodell Y′UV, sondern der Codec unterstützte anfänglich Y′CBCR 4:2:2 und Y′CBCR 4:2:0. Zudem unterstützt er heute die verlustfreie Kompression von RGB- und RGBA-Daten, sowie die verlustbehaftete Konvertierung von RGB-4:4:4-Daten zu Y′CBCR-4:2:2-Daten.

HuffYUV benutzt den FourCC-Code «HFYU» (und «HYMT» für die Version mit Multithreading-Unterstützung).

HuffYUV kann nur bedingt fürs Archiv empfohlen werden und zwar dann, wenn dieses FFmpeg beherrscht. Zudem wäre FFV1 eine wesentlich bessere Videocodec-Wahl fürs Archiv.

Bemerkungen

  • Die letzte stabile Version des ursprünglichen HuffYUV ist 2.1.1 vom 6. Mai 2002. Der originale Codec wird weder weiterentwickelt noch gewartet. Am 22. Dezember 2003 wurde zwar noch eine Version 2.2 veröffentlicht, die aber gravierende Fehler aufweist, und danach ist dieses Projekt verstummt.
  • Die freie Codec-Bibliothek libavcodec enthält eine verbesserte, ffvhuff genannte Variante des HuffYUV-Codecs und diese wird weiter gewartet. Sie ist zum ursprünglichen Codec abwärtskompatibel und benutzt den FourCC-Code FFVH. Unsere Firma benützt diesen Codec nach wie vor für die Digitalisierung auf Scannern des tieferen und mittleren Preisbereiches, weil er die Rohdaten 25% schneller codiert als FFV1.
  • Der Lagarith-Codec ist eine andere Weiterentwicklung von HuffYUV, die aber teils Hardware abhängig ist.
  • Ein Kuriosum: HuffYUV 2.1.1 ist übersichtlich programmiert und kann als Lehrbuch für Codec-Programmierung verwendet werden. [Im Quelltext findet man übrigens den «witzigen» Kommentar: Too late to fix it now.]

2018–09–28