Was ist Software-Encoding?
Software-Encoding komprimiert Medien mit Befehlen, die auf Universalprozessoren ausgeführt werden, statt primär einen dedizierten Hardware-Encoder zu nutzen. Sein Verhalten hinsichtlich Codec und Qualität hängt von der gewählten Implementierung und den Einstellungen ab.
So funktioniert Software-Encoding
Ein Software-Encoder führt Codec-Algorithmen als CPU-Befehle aus und bietet implementierungsspezifische Einstellungen für Prädiktion, Bitratensteuerung, Quantisierung und Thread-Nutzung. Voreinstellungen wägen üblicherweise Rechenaufwand gegen Komprimierungseffizienz ab, sodass zwei Encoding-Ergebnisse bei gleicher nomineller Bitrate in Qualität und Verarbeitungsdauer abweichen können. Seine Portabilität und Konfigurierbarkeit machen ihn für Offline-Transkodierungsfarmen, Entwicklungsumgebungen und Workflows nützlich, die seltene Codec-Funktionen benötigen. Der Durchsatz muss dennoch auf Auflösung, Bildrate, Voreinstellung und verfügbare Kerne abgestimmt werden.
Wichtige Fakten
- Softwareimplementierungen können neuere Profile oder experimentelle Codec-Werkzeuge bereitstellen, bevor Geräte mit festgelegten Funktionen sie unterstützen. Der erzeugte Bitstream muss dennoch zum Profil und Level des Decoders passen.
- Eine deterministische Ausgabe ist über verschiedene Encoder-Versionen oder Builds hinweg nicht garantiert: Bibliotheksupdates, Kompilierungsoptionen und CPU-spezifische Optimierungen können die Bitzuweisung oder sogar die codierten Bytes verändern.
- Parallele Verarbeitung verbessert den Durchsatz, doch einige Stufen der Prädiktion und des Entropie-Encodings haben Abhängigkeiten, die die Skalierung begrenzen; zusätzliche CPU-Kerne verkürzen die Encoding-Dauer nicht unbedingt proportional.
Wann Software-Encoding wichtig ist
Wählen Sie Software-Encoding, wenn Codec-Flexibilität oder präzise Qualitätssteuerung wichtiger sind als Geschwindigkeit oder Stromverbrauch. Voreinstellungen für hohe Qualität können erhebliche CPU-Zeit beanspruchen und auf begrenzter Hardware die Echtzeitvorgaben verfehlen.