Dav1d deutlich schneller als Google-Decoder
Der AV1-Decoder des Videolan-Projektes macht vor allem auf Mobilsystemen große Fortschritte. Die Konkurrenz ist deutlich schlechter.
by Sebastian GrünerDas Entwicklerteam der Videolan-Community hat Version 0.7 des Decoder Dav1d für den freien Videocodec AV1 veröffentlicht. In der Ankündigung auf seinem Blog hebt Projektleiter Jean-Baptiste Kempf erneut die deutlichen Leistungsverbesserungen der Software hervor. Das gilt offenbar insbesondere im Vergleich zur verfügbaren Konkurrenz.
Den wohl größten Zuwachs erreicht Dav1d durch eine komplett neue Implementierung für die Referenzierung sogenannter Motion Vector. Dabei handelt es sich um ein besonders wichtiges Werkzeug des AV1-Codec. Ausgehend von Referenz-Frames bilden die Motion Vector zeitliche und räumliche Bewegungen in anderen Frames ab. Der neue Code beschleunige das Decoding um rund 10 Prozent und reduziere zusätzlich dazu die Speicherbelastung um 25 Prozent.
Für die x86-Architektur hat das Team seinen Assembly-Code für 8-Bit-Farbtiefe fertiggestellt. Ebenfalls erledigt hat das Team zuvor noch ausstehende Optimierungen für SSSE3 und AVX2. Für die aktuelle Version sind weitere Optimierungen auf Grundlage von AVX-512 zu Dav1d hinzugekommen, was bisher jedoch nur von einigen wenigen modernen CPUs unterstützt wird. Kempf weist außerdem darauf hin, dass es künftig schwerer werde, Dav1d auf x86-CPUs künftig noch weiter zu beschleunigen. Immerhin sei der Decoder aber immer noch drei- bis fünfmal schneller als die Referenz der Alliance for Open Media.
Schnell auf ARM
Einen großen Fokus hat das Entwicklerteam zusätzlich auf ARM-CPUs und den Einsatz in Mobilsystemen gelegt. So sei die Assembly-Implementierung für ARM64 mit der aktuellen Version 0.7 größtenteils fertiggestellt. Die AV1-Decodierung sei damit nun auch auf entsprechenden Smartphones leistbar.
In einer eigenen Auswertung vergleicht das Team Dav1d mit dem Google-Decoder Gav1, wobei letzterer deutlich schlechter abschneidet, vor allem bei der Nutzung mehrerer Threads. Als Referenz dient hier unter anderem ein Pixel 1 mit Snapdragon 821 aus dem Jahr 2016.
Zur Echtzeit-Decodierung eines 1080p-Samples von Netflix reichen Dav1d zwei Threads auf den Little-Kernen der CPU. Der Google-Decoder leistet dies nicht. Darüber hinaus ist Dav1d der Auswertung zufolge mindestens doppelt so schnell wie Gav1.
Kempf zeigt sich sehr erfreut darüber und schreibt: "Dav1d ist nun ein sehr schneller Decoder auf Desktop-Rechnern und Laptops, aber vor allem auch auf Mobilsystemen, wo er sehr beeindruckende Leistung zeigt".