Videocodec: VP8 wird schneller
Mehrere Entwickler haben sich unterschiedliche Bereiche von VP8 vorgenommen, um den Codec schneller zu machen. Scott LaVarnway vom VP8-Entwickler On2 hat beispielsweise an einer Assemblerversion des bei VP8 verwendeten Qantizer für x86-Systeme geschrieben. Da der Code vom VP8-Encoder häufig aufgerufen wird, sollte diese Umstellung das Codieren von VP8-Videos beschleunigen, wenn auch nur auf entsprechenden Prozessoren.
Allerdings bietet sich weiteres Potenzial für Verbesserungen, denn große Teile des von VP8 verwendeten Assemblercodes nutzen nur SSE2-Instruktionen. Mit einem Wechsel auf neue Instruktionserweiterungen sollte sich der Encoder weiter beschleunigen lassen, meint Google-Entwickler John Koleszar(öffnet im neuen Fenster). Auch andere Bereiche könnten von einer Umstellung auf SIMD profitieren.
Auch in anderen Bereichen sind Verbesserungen möglich: Koleszar nennt vor allem die Suche nach neuen Strategien zur Bewegungserkennung. Gelänge es, die Bewegungserkennung komplett zu entkoppeln, ließe sie sich beispielsweise auf eine GPU auslagern, was zu deutlich höherer Geschwindigkeit führen würde.
Auch auf Seiten des Decoders gibt es erste Verbesserungen. Mozilla-Entwickler Jeff Muizelaar hat beispielsweise einige Funktionen in der x86-Version zusammengelegt, so dass weniger Daten im Speicher hin und her bewegt werden müssen. Da dadurch aber der Assemblercode fundamental verändert wird, ist es voraussichtlich notwendig, andere Plattformen auf generischen C-Code umzustellen, was dort die Leistung verringern wird. An einer Implementierung des Assembler-Codes für ARM wird aber bereits gearbeitet. Sowohl die Änderungen für x86 als auch ARM sollen demnächst in den Hauptentwicklungszweig von VP8 einfließen.
Koleszar selbst will sich unter anderem einem Multi-Threaded-Decoder widmen.
Darüber hinaus soll vor allem die Leistung auf Embedded-Plattformen verbessert werden. Erste Optimierungen für Intels Atom sind in Arbeit. Das ist vor allem deshalb wichtig, weil der bisher geschriebene Assembler-Code auf Out-of-Order-Prozessoren ausgelegt ist. Beim Atom handelt es sich aber um einen In-Order-Prozessor.
Letztendlich aber, betont Koleszar, sei die Optimierung von Codecs eine unendliche Geschichte.

