# Daala

Daala ist ein offenes Datenformat zur verlustbehafteten Videokompression. Es wurde unter der Leitung von Timothy B. Terriberry von der Xiph.Org Foundation und dem Hauptsponsor Mozilla entwickelt. Unter drei Dutzend weiteren Beitragenden außerhalb dieser Organisationen finden sich auch Ingenieure von Google Inc. und Cisco Systems. Technologien aus Daala und Opus fließen mittlerweile in AV1 ein.
Der Name ist von der weiblichen Fantasiefigur Admiral Natasi Daala aus Star Wars übernommen.
Die Referenzimplementierung ist in C geschrieben und wird als Freie Software mitsamt Quellcode unter den Bedingungen einer BSD-artigen Lizenz veröffentlicht.
Für in Daala verwendete und dafür entwickelte Techniken werden Softwarepatente angemeldet und freizügig zur allgemeinen Nutzung zur Verfügung gestellt. Dabei wird sich allerdings ihre Verwendung zur Abwehr von Patentklagen Dritter vorbehalten.
Die Entwicklung wurde seit dem 20. Juni 2013 durch eine Serie unregelmäßig erscheinender Beiträge zur zugrundeliegenden Technik auf der Website der Xiph.Org Foundation begleitet. Außerdem hielten Projektbeteiligte Vorträge bei verschiedenen IT-Konferenzen.

## Entwurfsziele

Es soll als zukünftiger Standard für den Einsatz im Internet und für Echtzeitanwendungen geeignet sein. Dafür soll es offen dokumentiert und frei von Softwarepatentrestriktionen nutzbar sein, um sich möglichst ungehindert verbreiten zu können. Des Weiteren soll es für eine große Bandbreite von Nutzungsszenarien geeignet sein.
Es wird eine zu anderen modernen Verfahren vergleichbare oder bessere Leistung angestrebt. Die Entwickler setzen auch aus patentrechtlichen Erwägungen weniger auf die inkrementelle Weiterentwicklung bewährter Entwurfsmuster. Stattdessen sollen riskantere Investitionen in das Finden und Erproben von grundlegenden Kodierungstechniken mehr neue und potenziell lohnendere Ansätze erbringen. Dadurch soll die immer stärkere Zunahme des Kodierungsaufwandes bei weiteren Verbesserungen durchbrochen werden, die sich bei der Entwicklung anderer Verfahren zeigt. Alle bisherigen gebräuchlichen Verfahren teilen seit zwei Jahrzehnten (H.261) denselben Grundentwurf.
Außerdem sollen Möglichkeiten zur Parallelverarbeitung berücksichtigt und Hardware-Unterstützung angestrebt werden.
Es ist als hocheffizientes Videoformat für ähnliche Anwendungen wie High Efficiency Video Coding (HEVC oder H.265) und VP9 gedacht. Seine Leistungsfähigkeit zielt dabei erklärtermaßen auf eine Generation nach HEVC und VP9.

## Technik

Als eine grundlegende Technik wird eine unkonventionelle Kosinustransformation mit überlappenden Blöcken genutzt. Gegenüber anderen Videocodecs, die die Diskrete Kosinustransformation (DCT) direkt nutzen, reduziert dies das Aufkommen von Blockartefakten, ohne zusätzliche Filtermaßnahmen gegen Blockartefakte implementieren zu müssen.
Zur Quantisierung nutzt Daala die an der menschlichen Wahrnehmung ausgerichtete Perceptual Vector Quantisation (PVQ, eine sphärische Vektorquantisierung). Chrominanz-Komponenten werden aus der Luminanz-Komponente vorhergesagt. Ein bedingter Ersetzungsfilter ähnlich einem Median- und einem bilateralen Filter wird als in-loop-Filter gegen Ringing-Artefakte eingesetzt.
Die Ausgabedaten des Kodierers werden mit einer Bereichskodierung zu einem einzigen Bitstrom zusammengepackt.

## Geschichte

Innerhalb der Familie der Xiph-Org-Multimedia-Formate ist Daala der Nachfolger des 2004 fertiggestellten Formates Theora. Als wesentliche Motivationen für die Entwicklung eines Videokodierungsstandards werden die Probleme bei der Einigung auf Codecs für WebRTC und die Erfolge bei der Entwicklung des Audiokodierungsstandards Opus genannt. Anknüpfend an Erfolge des Opus-Projektes der Internet Engineering Task Force (IETF) soll dort auch aus Daala ein weltweiter Standard entwickelt werden. Der Zweck von Daala ist es, eine anfängliche Vorlage für die Entwicklung dieses Standards zu sein. Es ist daher die Hoffnung, dass es durch viele nützliche Beiträge anderer Parteien umgeformt wird oder darin aufgeht.
Erster experimenteller Code existierte bereits im Jahr 2010. Ab dem 27. Mai 2013 sollten erste Schritte von einem reinen Rechercheprojekt hin zu einem funktionsfähigen Codec-Prototyp erfolgen. Am 30. Mai wurde dann mit einem Alpha-Prototyp Video durch das Internet gestreamt.
Nach mehreren Vortreffen seit dem 1. Oktober 2014 wurde eine entsprechende Arbeitsgruppe der IETF am 18. Mai 2015 offiziell aktiv. Dieser wurden unter anderem eine Reihe von Kodierungstechniken aus Daala als Arbeitsgrundlage vorgelegt.
Im Juni 2016 hatte Daala (der algorithmischen Metrik PSNR-HVS-M zufolge) annähernd die gleiche Bitrateneffizienz wie HEVC.
Die Entwicklung ist offenbar beendet. Der veröffentlichte Zeitplan endet im Jahr 2015. Die letzten nennenswerten Änderungen am Quellcode wurden im Jahre 2017 vorgenommen.

## NetVC

Die Internet Engineering Task Force (IETF) hat eine Arbeitsgruppe eingerichtet, die mit der Entwicklung eines „Internet Video Codec“ („NetVC“) beauftragt ist. Im Rahmen der Arbeitsgruppe sind nun auch andere Partner an der Weiterentwicklung von Daala beteiligt. So wird nun zum Beispiel auch Technik integriert, die die Firma Cisco Systems eingebracht hat, welche auch an der Entwicklung von HEVC beteiligt war. Sowohl Daala als auch der von Cisco vorgestellte Codec Thor sollen in NetVC aufgehen.
Einige der vorläufigen Entwurfsanforderungen für NetVC sind die Unterstützung für eine Farbtiefe von 8 bis 12 Bits je Abtastwert, Unterstützung für Auflösungen bis zu 4K, Unterstützung für 4:2:0-, 4:2:2- und 4:4:4-Farbunterabtastung, Unterstützung für die Farbräume Rec. 709 und Rec. 2020 und Berücksichtigung für Parallelverarbeitung. Zusätzliche Merkmale, die abhängig vom Aufwand zu NetVC hinzugefügt werden könnten, sind verlustfreie Komprimierung, RGB-Farbmodus und Alphakanäle.