1. #1
    Commander
    Dabei seit
    Aug 2006
    Ort
    39***
    Beiträge
    2.556

    [FAQ] HEVC (H.265) kodierte Videos abspielen

    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 8 Bit: HD 4400/4600/5000/5500/6000; Iris 5100/6100 und Iris Pro 5200 (Hybrid Decoder)
    **: 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, Polaris) 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
    *: use a combination of the PureVideo hardware and software running on the shader array to decode HEVC (H.265) as partial/hybrid hardware video decoding


    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 6 bis 8: Diese Varianten sind nicht auf http://jell.yfish.us/ verfügbar und wurden von mir im Vorfeld erstellt.
    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.




    Zum Diskussionsthread
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicke auf die Grafik für eine größere Ansicht 

Name:	dxva.png 
Hits:	10200 
Größe:	26,5 KB 
ID:	612647   Klicke auf die Grafik für eine größere Ansicht 

Name:	d4.PNG 
Hits:	10080 
Größe:	79,1 KB 
ID:	612652   Klicke auf die Grafik für eine größere Ansicht 

Name:	d1.PNG 
Hits:	11283 
Größe:	82,7 KB 
ID:	612426   Klicke auf die Grafik für eine größere Ansicht 

Name:	d2.PNG 
Hits:	11288 
Größe:	91,1 KB 
ID:	612427   Klicke auf die Grafik für eine größere Ansicht 

Name:	o.png 
Hits:	11368 
Größe:	236,0 KB 
ID:	612428  


  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
Forum-Layout: Feste Breite / Flexible Breite