habichtfreak
Captain
- Registriert
- Aug. 2006
- Beiträge
- 3.542
HEVC (H.265) kodierte Videos abspielen
Da in letzter Zeit häufiger die Frage im Forum auftaucht, ob der eigene PC Videos mit den neuen Codec HEVC abspielen kann, hier eine kleine Zusammenfassung welche Hardware diesen Codec unterstützt und welche nicht.
Grundlagen:
HEVC steht für High Efficiency Video Coding und ist auch unter den Namen H.265 und MPEG-H Teil 2 bekannt. Er ist der Nachfolger von AVC (oder H.264) und findet Anwendung bei Streaming Angeboten, DVB-T2 und Blu-Ray Disk mit 4k Auflösung. Fälschlicherweise wird HEVC oft mit 4k/UHD gleichgesetzt. Der Codec wurde zwar entwickelt um höhere Auflösungen als FullHD effizient speichern zu können, jedoch muss eine Videodatei mit höherer Auflösung nicht zwingend diesen Codec verwenden. 4K kann auch mit AVC kodiert sein. HEVC bietet gegenüber AVC Platzersparnis (bei gleicher Qualität) oder bessere Qualität bei gleiche Bitrate. Insbesondere bei sehr niedrigen Bitraten ist der Vorteil gut sichtbar. Während AVC zu Kompressionsartefakten neigt, ist die Qualität bei HEVC deutlich besser.
Damit ein Video abgespielt werden kann, muss der entsprechende Decoder vorhanden sein. Ist keiner vorhanden, übernimmt die Aufgabe die CPU. Die ist jedoch denkbar ungeeignet für diese Aufgabe weshalb die Wiedergabe meist nicht flüssig ist. Der Decoder ist Bestandteil der Grafikkarte bzw. IGP. Die großen Hersteller bezeichnen ihre En- bzw. Decoder als Unified Video Decoder (AMD), PureVideo HD (Nvidia) bzw. Quick Sync (Intel).
Decoder (Intel):
HEVC (8 Bit) | HEVC (10 Bit) | |
Ivy Bridge und ältere | Nein | Nein |
Haswell | Teilweise* | Nein |
Broadwell | Teilweise* | Teilweise** |
Skylake, Braswell | Ja | Nein*** |
Kaby Lake, Broxton | Ja | Ja |
**: Seit dem Treiber 15.36.14.4080 unterstützen folgende IGPs auch HEVC 10 Bit:HD 5500/6000 und Iris 6100 (Hybrid Decoder)
***: Bei einige IGPs ist HEVC 10 Bit aktiviert (HD 520/530), auf anderen nicht (HD 515) (Quelle)
Decoder (AMD):
HEVC (8 Bit) | HEVC (10 Bit) | |
UVD 1 bis 4 (GCN 1; GCN 2 und ältere) | Nein | Nein |
UVD 5 (Tonga, Antigua, Iceland) | Ja | Nein |
UVD 6 (FIJI, Bristol Ridge, Carrizo) | Ja | Nein |
UVD 6.3 (Polaris, Stoney Ridge, Raven Ridge) | Ja | Ja |
Decoder (Nvidia):
HEVC (8 Bit) | HEVC (10 Bit) | |
VP 1 - VP 5 (Fermi, Kepler und ältere) | Nein | Nein |
VP 6 (Maxwell außer GM206) | Ja* | Ja* |
VP 7 (GM206), VP 8 (Pascal) | Ja | Ja |
Dekoder überprüfen:
Ob bzw. welcher Dekoder bei eurer Hardware vorhanden ist, könnt ihr mit dem DXVA Checker überprüfen. Ist der Eintrag "HEVC_VLD_Main" vorhanden, wird HEVC (8 Bit) unterstützt. "HEVC_VLD_Main10" zeigt die Unterstützung für HEVC (10 Bit). Zusätzlich werden die unterstützten Auflösungen angegeben.
Dekodieren mit CPU:
Bietet eure GPU/iGP keinen Decoder für HEVC übernimmt die CPU diese Aufgabe. Ob diese genügend Leistung hat ein bestimmtes Video abzuspielen lässt sich allgemein nicht beantworten. Insbesondere Auflösung und Bitrate spielen eine Rolle, aber auch weitere Faktoren. Im nachfolgenden Beispiel wird der Einfluss von Decoder (H.264 bzw. H.265), Auflösung (FullHD bzw. UHD) und Bitrate (25 bis 120 MBit/s) näher betrachtet. Ich weise darauf hin, dass sich die Erkenntnisse aus diesem Beispiel nicht auf jedes Video übertragen lassen. Als Beispiel dienen die Videos von http://jell.yfish.us/.
ID | Codec | Bitrate | Auflösung | FPS | Profile | Level | Farbtiefe |
1 | AVC | 40 | 1920 x 1080 | 29,97 | High | 4.1 | 8 Bit |
2 | HEVC | 40 | 1920 x 1080 | 29,97 | Main | 4.1 | 8 Bit |
3 | HEVC | 40 | 1920 x 1080 | 29,97 | Main10 | 4.1 | 10 Bit |
4 | AVC | 120 | 3840 x 2160 | 29,97 | High | 5.1 | 8 Bit |
5 | HEVC | 120 | 3840 x 2160 | 29,97 | Main10 | 5.1 | 10 Bit |
6 | HEVC | 50 | 3840 x 2160 | 29,97 | Main10 | 5.0 | 10 Bit |
7 | HEVC | 25 | 3840 x 2160 | 29,97 | Main10 | 5.0 | 10 Bit |
8 | HEVC | 10 | 3840 x 2160 | 29,97 | Main10 | 5.0 | 10 Bit |
9 | HEVC | 23 | 3840 x 2160 | 29,97 | Main | 5.0 | 8 Bit |
ID 9: Variante für den Test von Intels Hybrid Decoder
Testplattform:
- Betriebssystem: Windows 7 Ultimate 64 Bit
- CPU: Intel i5-4590
- GPU: Intel HD 4600 (Hybrid Decoder inaktiv)
- Player: Media Player Classic – Home Cinema 1.7.10 (64 Bit)
- CPU-Last mit perfmon aufgezeichnet (1 Sek Intervall, Nachkommastellen gerundet)
Während H.264 keine besondere Herausforderung darstellt – die Aufgabe übernimmt der vorhandene Decoder – muss die CPU bei HEVC (in FHD) bereits sichtlich arbeiten. Auf einem vergleichbaren Dual-Core (z.B. Pentium) könnte es vereinzelt zu einer stockenden Wiedergabe kommen. 10 Bit benötigt in diesem Beispiel rund 10,8% mehr Leistung gegenüber 8 Bit. HEVC (in UHD) benötigt zu viel Leistung, sodass eine flüssige Wiedergabe nicht möglich ist. Obwohl das Video nur 30 Sekunden lang ist, schließt sich der Player erst nach knapp 40 Sekunden. Um herauszufinden ob Auflösung oder Bitrate belastender für die CPU ist, habe ich drei weitere Beispiele mit reduzierter Bitrate getestet:
Trotz deutlich reduzierter Bitrate ist eine flüssige Wiedergabe nicht möglich. Während die FHD Variante mit 40 MBit/s flüssig läuft, kann die UHD Variante mit 10 MBit/s nicht (vollständig) genossen werden. Die Bitrate des Videos hat entsprechend weniger Einfluss als die verwendete Auflösung. Jedoch macht es keinen Sinn, die Bitrate soweit abzusenken, nur damit bei einer sehr hohen Auflösung eine flüssige Wiedergabe möglich ist, denn es entstehen - auch bei HEVC - irgendwann Kompressionsartefakte.
Zurück zur Frage, wie viel HEVC schafft eine CPU: Der Codec ist an keine bestimmte Auflösung gebunden. Er kann für FHD, UHD, 8K aber auch für 240p (320 x 240 Pixel) verwendet werden. Wurde ein Video sinnvoll kodiert, geht eine höhere Auflösung immer mit einer höheren Bitrate einher. Für FHD sollte eine CPU der letzten Jahre mit 4 Kernen bzw. 4 Threads ausreichend sein. HEVC (UHD) auf einer CPU zu dekodieren erfordert hingegen derart viel Rechenleistung (und damit einhergehend auch erhöhter Stromverbrauch und Geräuschkulisse), dass es nicht sinnvoll ist dies ohne Decoder zu tun. Jede aktuelle Grafikkarte von AMD bzw. Nvidia bringt einen HEVC Decoder mit und selbst im kleinen Celeron bzw. Atom von Intel ist einer zu finden.
Hohe CPU-Last trotz vorhandenem Decoder:
Leider reicht ein verbauter Decoder nicht immer aus, auch die Software muss ihn nutzen können. Neben den Treibern (die möglichst aktuell sein sollten), spielt auch der Player eine Rolle. Ein Beispiel aus der Vergangenheit: AMDs Fiji (Radeon R9 Fury) konnte mit dem MPC-HC und dem internen LAV Video Decoder 0.65.0.9 den vorhanden Decoder nicht nutzen. Erst mit Version 0.66 war dies möglich. Apropos MPC: Schaut mal unter Optionen --> Interne Filter --> Video Decoder …
Habt ihr einen HEVC Decoder, setzt den Haken (nur dann wird er auch genutzt). Auch bei UHD (4K) sollte der Haken gesetzt sein. Ist das nicht der Fall, werden Videos mit einer höheren Auflösung als HD (gemeint ist hier 1080p) unnötigerweise mit CPU dekodiert. Diese Einstellung bezieht sich nicht nur auf HEVC, sondern auf alle unterstützen Decoder (insbesondere auch H.264).
Intels Hybrid Decoder im Test:
Wie bereits im Abschnitt Decoder (Intel) angemerkt, lieferte Intel mit einem Treiberupdate einen HEVC 8 Bit Support für Haswell/Broadwell nach. Hierbei handelt es sich sich um einen Hybrid Decoder (ähnlich wie bei Nvidias Maxwell). CPU und GPU teilen sich die Arbeit. Ob und wie gut das ganze funktioniert, habe ich an einem Beispiel getestet (ID 9 aus oben stehender Liste):
Neben dem Treiber (15.36.14.4080 oder neuer) muss - zumindest im MPC-HC - unter Optionen der HEVC Decoder noch aktiviert werden (Haken setzen). Der DXVA Checker bestätigt, dass HEVC (8 Bit) unterstützt wird. Verwendet habe ich den Treiber 15.36.33.4578 (von Januar 2017):
Tatsächlich sinkt die CPU-Last um etwa 50%, im Gegenzug verdoppelt sich die Last auf der IGP. Der Hybrid Decoder funktioniert erst einmal und entlastet die CPU.
Subjektive Beurteilung: Während das Video per CPU dekodiert wird, läuft es nach einigen kleineren Rucklern in den ersten 5 Sekunden flüssig. Wird der Hybrid Decoder aktiviert, läuft das Video hingegen über weite Strecken nur stockend. Tastenbefehle (z.B. Pause) werden erst nach 2-3 Sekunden registrierst.
Die HD 4600 ist die schnellste IGP der Haswell Baureihe. Leider reicht ihre Leistung in diesem Beispiel aber nicht aus. Und das obwohl die Bitrate mit 23 MBit/s noch relativ niedrig ist. 4k (HEVC) Videos sind und bleiben auf einer Haswell Platform kein Genuss, daran kann auch ein Hybrid Decoder nichts ändern.
Anhänge
Zuletzt bearbeitet von einem Moderator:
([TABLE]-BBCode korrigiert)