gesucht sind alle leute mit 16 oder gar 18 kerner mit ht

Die Unterschiede steigen mit abnehmender Bitrate bzw. zunehmender QUalitätseinstellung beim CPU-Encoding. Das sieht man dann sehr deutlich.

Das mag sein. Ich habe so große Qualitätsunterschiede noch nicht getestet.

@JackTheHero: Hast du das schon getestet?
 
Wenn jetzt allerdings beides letztlich gleichwertig sein soll, dann muss bei höherer Geschwindigkeit was anderes leiden, wenn die Qualität nahezu gleich ist.
Korrekt.

Ist es die/der Dateigröße/Komprimierungsgrad? Und du definierst Effizienz aber schon als Qualität/Dateigröße?
Moderne Videocodecs arbeiten mit einem "Qualitätsrating" um die nötige Bitrate zu bestimmen. Früher hat man eine konstante Bitrate eingestellt - das Ergebnis war größenmäßig vorhersehbar aber die Videos waren schlecht komprimiert - ruhige Szenen waren hübsch, bewegte Szenen hässlich. Danach kam averagebitrate und 2pass - im ersten Schritt schaun für welche Szenen man viel Bitrate braucht und wo weniger und dann entsprechend komprimieren. Besser aber noch immer nicht optimal.
Heite nutzen Codecs den CRF (ConstantRateFactor) und bestimmen während des Komprimiervorgangs durch geschickte Algorithmen, wie viel Bitrate nötig ist, um ein gewünschtes Bildqualitätslevel zu halten. Du sagst beispielsweise dem Encoder "CRF=20" und er wird die Bitrate in jeder Sekunde so wählen dass das Ergebnis sehr ansehnlich ist. Sagst du "CRF=25" wirds weniger hübsch, dafür die Datei kleiner. Blöderweise weiß man hier im Vorraus nicht mehr wie groß die Zieldatei wird - ein Actionfilm wird bei CRF 20 viel größer werden als eine Dokumentation mit CRF 20.

Nun kommt die Effektivität ins Spiel. Ein heutiger Encoder hat Hunderte von Funktionen und mathematischen Tricks, um die Bildqualität möglichst effizient in eine Datei zu packen (hier gibts ne Liste der Einstellungen: Command Line Options — x265 documentation). Je mehr man davon verwendet und je stärker man die einstellt desto rechenaufwendiger wird der komprimiervorgang und desto effektiver wird die Komprimierung. Wenn ich den CRF bei 20 lasse und sehr aufwendige Einstellungen wähle wird die Datei entsprechend deutlich kleiner als wenn ich sehr lasche Einstellungen wähle - das Ergebnis ist qualitativ dasselbe (CRF ist ja immer 20), nur ist einmal die Datei viel kleiner und die benötigte Rechenzeit viel höher. Die Codecs lassen dir also die Wahl ob du schnell sein willst oder ob du effizient sein willst im Komprimierungsgrad ohne dass die Qualität beeinflusst wird.

Und genau hier setzen die GPU-Encoder an. Die leute haben in der Mehrzahl absolut keine Ahnung von dem was ich da grade erklärt habe und sehen nur die fps-Anzeige. Also stellt man beim GPU-Encoding die Einstellungen sehr sehr simpel ein. Bedeutet die Zieldatei wird sehr groß aber man kann extrem schnell komprimieren - und letzteres ist eben entsprechend werbewirksam.
Es hat auch technische Gründe warum man das so machen muss - denn GPUs sind im gegensatz zu CPUs nicht dazu geeignet, sehr komplexe Rechenoperationen durchzuführen. GPUs können nur vergleichsweise einfache Dinge tun, diese aber extrem parallelisiert und schnell mit ihren tausenden von Shadereinheiten. Deswegen wäre es sehr ineffektiv, die mathematisch "hochwertigen" Funktionen eines modernen Encoders auf einer GPU auszuführen, sie würde wegen der Komplexität der Berechnungen sehr, sehr langsam werden. CPUs sind für sowas gebaut, die haben mit Komplexität kein Problem, sind aber weniger effizient wenns sehr simpel wird (deswegen ist eine GPU bei "billigen" Einstellungen schneller als eine CPU).

Deswegen ists so, dass man ein Video das eine GPU komprimiert hat mit guten Einstellungen auf deiner CPU in aller Regel problemlos auf die Hälfte bis ein Drittel der Dateigröße runterbrechen kann ohne sichtbaren Qualitätsverlust (also mit gleichem CRF), nur ist das viel langsamer (ich hatte das für einen User hier mal mit einem seiner Minecraft-Clips gemacht der das nicht glauben wollte - seine Datei von ein paar Hundert MB aus Shadowplay hatte danach noch iirc ~60 MB und sah gleich aus :-D).
Wenn ich dagegen die billigen Einstellungen auch auf der CPU wähle ist meine TitanX nicht mehr nennenswert schneller als der 5960X.

Die Unterschiede steigen mit abnehmender Bitrate bzw. zunehmender QUalitätseinstellung beim CPU-Encoding. Das sieht man dann sehr deutlich.
Richtig. Der oben beschriebene Effekt wird umso deutlicher, je geringer die akzeptable Bitrate eingestellt ist. Denn wenn die Kodiereffizienz nicht gut ist (wie bei GPUs) ist das weniger schlimm wenn ich eben die Bitrate hochballern kann. Darf der Encoder das nicht wirds hässlich. Da die GPU keine Möglichkeit hat, mehr Informationen pro Byte abzulegen wie die CPU es mit überlegenen Algorithmen kann wird das Ergebnis sehr unschön - in aller Regel sieht man das schnell durch "blocking"/Artefakte.

CPU ist sicher ohne Frage schon etwas besser, aber ist der Unterschied wirklich so relevant, dass man sich den Unterschied im Zeit- und Energieaufwand geben will?

Kommt auf die Zielsetzung an. Wie gesagt wenns drum geht Videos für YT zu machen ist GPU-Encoding super. Es ist schnell und die Bitrate/Dateigröße ist eh wurscht weils YouTube speichern muss und nicht du. Willst du dagegen dein Hochzeitsvideo für die Nachwelt sichern würde ich den Teufel tun und die GPU da ranlassen. Da wäre ein HEVC10 + slow preset / CRF18 ein vernünftiger Anfang.
 
Zuletzt bearbeitet:
Kommt auf die Zielsetzung an. Wie gesagt wenns drum geht Videos für YT zu machen ist GPU-Encoding super. Es ist schnell und die Bitrate/Dateigröße ist eh wurscht weils YouTube speichern muss und nicht du. Willst du dagegen dein Hochzeitsvideo für die Nachwelt sichern würde ich den Teufel tun und die GPU da ranlassen. Da wäre ein HEVC10 + slow preset / CRF18 ein vernünftiger Anfang.

Willst du dagegen dein Hochzeitsvideo für die Nachwelt sichern würde ich den Teufel tun und die CPU da ranlassen
 
Der Satz stimmt schon so wie er da steht. "Den Teufel tun" bedeutet "garantiert nicht [so] machen". Ich würde es garantiert nicht mit der GPU machen.

Persönlich würde ich nebenbei gar nicht auf einer GPU konvertieren. Selbst Pixelbrei für YouTube nicht. Wenns schnell gehen muss gibts eben HEVC preset veryfast - selbst das nutzt schon 64er CTUs und ist einer GPU weit überlegen - und nicht viel langsamer auf ner sehr flotten CPU.
 
Zuletzt bearbeitet:
Pixelbrei haste auf YT nur wenn du unter 4K hochlädst. Am besten jedes Video auf 8K hochskalieren, dan haste auch Bitrate und ordentliches Bild.
 
Hi ich weis nun wo das problem liegt. Ich stelle ume ein das programm gibt hex aus. Ich stelle 3 ref ein, er gibt 4 ref aus. Das programm hybrid will mich anscheinend ärgern. Es macht was es will. Ich frage mich wozu es die stapel funktion hat wenn es dann 6-8 videos gleichzeitig, das es dann fehlerhafte sachen umwandeln. Die enwickler haben in den letzten monaten da was optimiert. Aber anscheinend in die falsche richtung. Sie sind auch nicht mehr das, was sie mal waren. Bin dann kurzerhand wieder zurück zu xmedia recode gegangen. Ich habe die zwei mal ausgeführt, siehe da auch 100 % auslastung. Bei hybrid brauche ich da schon 3 damit ich 100 % habe. Ich dachte die programme funktieren bei h264 alle gleich. Aber da scheine ich mich geirrt zu haben. Hmm.
 
Aber hilft aber nix.Letzendlich habe ich ja nicht das was ich mir vorgestellt hatte für ne aktion ,nichts gebracht.Dann kann ich halt den treadripper x1920x ja mal selber testen.Mal sehen wie viel in meinem einsatz wirklich raus reist.Höhere settings werde ich allerdings nicht mehr machen.Ich will es so wie es ist,auch dort testen.Der wechel von i7 3770k zu i7 6950x gab darum ne ordentliche leistungssteigerung weil ich zuvor ja die settings angehoben hatte.Aber es gleich zu lassen,ändert wohl schon was beim verhältnis.
Bin dann kurzerhand wieder zurück zu xmedia recode gegangen. Ich habe die zwei mal ausgeführt, siehe da auch 100 % auslastung. Bei hybrid brauche ich da schon 3 damit ich 100 % habe. Ich dachte die programme funktieren bei h264 alle gleich. Aber da scheine ich mich geirrt zu haben. Hmm.

XMedia Recode wird sicher der ein oder andere nutzen, aber wenn Du keinen Test Clip hochlädst und die dazu gehörigen Einstellungen postest, ist es einfach unmöglich Dir einen Vergleich zu deiner CPU zu bieten.
 
Ich dachte die programme funktieren bei h264 alle gleich. Aber da scheine ich mich geirrt zu haben. Hmm.

Es gibt tausende verschiedener DLL-Bibliotheken und Versionen zu h264 oder h265 Codecs und alle funktionieren sie anders. Die Programme die du nutzt (xmediarecode, Handbrake,...) sind nur GUIs und haben mit dem was im Hintergrund passiert gar nichts zu tun. Deine Programme sind nur hübsche grafische Oberflächen die es einem ungeübten Nutzer erlauben, die Kommandozeilenparameter für den eigentlichen Encoder mit Mausklicks zu erstellen.

xmediarecode oder handbrake und wie sie alle heißen haben üblicherweise den x264/x265 Standardencoder implementiert. Sobald du auf start klickst startet das Programm die x.264.exe mit den eingestellten Parametern - Beispiel:
h.265-Settings schrieb:
frame-threads=4 / numa-pools=16 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x1080 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=3 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=24 / keyint=240 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=20 / lookahead-slices=5 / scenecut=40 / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=3 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=0.00 / no-rd-refine / analysis-reuse-mode=0 / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=18.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=1 / transfer=1 / colormatrix=1 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-mv-type=0 / copy-pic=1

Viele dieser Einstellungen hast du wie du siehst händisch sicher nicht eingestellt. Die werden automatisch generiert - und das abhängig davon wie der Programmierer von Handbrake oder xMediaRecode es für am sinnvollsten erachtet hat. Das ändert sich entsprechend mit Programmversionen - deswegen sind die Ergebnisse nie gleich - es sei denn du setzt deine Kodierparameter wirklich alle manuell von Hand im CLI.
 
XMedia Recode wird sicher der ein oder andere nutzen, aber wenn Du keinen Test Clip hochlädst und die dazu gehörigen Einstellungen postest, ist es einfach unmöglich Dir einen Vergleich zu deiner CPU zu bieten.

Ähm hör mal die dazu verwendeten settings habe ich sehr wohl schon gepostet, nur eines fehlt, die dateien die zum testen sind. Werde das aber gerne noch nachholen. Werde die settings jeweils von hybride und xmedia recode aber gerne noch seperart posten. Ich weis nicht wie lange 560 mb datein zum uploaden braumuchen werden. Werde aber erst am abend dazu kommen. Aber einstellungen von hybride sind schon gepostet.
 
Hat einer von euch die neuste Version von XMedia Recode installiert? Ich sag' nur Bugs des Todes, es geht gar nichts!

Ich konvertiere übrigens gerade ein Gameplay von Earthfall mit dem x265 Codec in AVC Professional:

Screenshot_4.png

Die Auslastung ist jetzt nicht berauschend, aber geht eigentlich.
 
Zuletzt bearbeitet von einem Moderator:
Oh wie sieht denn die neueste version von xmedia recode aus, das ist ja schrecklich. Das disn ja ein fail. Zum glück habe ich ich nicht die neueste version. Ich wusste es doch das die software immer schlechter wird. Egal ob optisch oder stabilität weil bei leistung ändert sich ja nix mehr.
 
Oh wie sieht denn die neueste version von xmedia recode aus, das ist ja schrecklich.

Passt sich den Anforderungen der Masse an. Alle wollen nur idiotensicher und bunt. Das ist nunmal die Zielgruppe.
Wenn du ernsthaft professioneller mit Videokompression arbeitest benutzte sowieso die (ggf. kostenpflichtige) Version von x265 im Kommandozeilenfenster (und hast dadurch noch so manch anderen erwähnenswerten Vorteil wie beispielsweise AVX512-Unterstützung - deswegen sind die Reviews im Netz teilweise so unterschiedlich zwischen SkylakeX und Threadripper weil die tester selbst oft nicht wissen was sie da genau tun - wenn der Encoder AVX512-Unterstützung hat und die Settings entsprechend sind zerreißt ein SkylakeX jeden Threadripper in der Luft, selbst mit vielen Kernen weniger - ohne AVX hat der Threadripper wegen mehr Kernen bei vergleichbarer IPC dagegen meist den Vorteil).

Die mächtigste freie Variante ist die da: http://msystem.waw.pl/x265/x265-2.8+42-8bf51aa_vs2015-AVX2.7z
 
Zuletzt bearbeitet:
Ja bitte.
i5-5200U: Runtime in seconds: 72.212706089

Code:
C:\Users\marcf\Downloads\SC_bench_mem.py>SC_bench_mem.py
Generate test data of size 16777216
Traceback (most recent call last):
  File "C:\Users\marcf\Downloads\SC_bench_mem.py\SC_bench_mem.py", line 12, in <module>
    testdata=array('c',[chr(random.randint(1,255)) for k in range(Testsize)])
ValueError: bad typecode (must be b, B, u, h, H, i, I, l, L, q, Q, f or d)

Muss ich zwingend Cpython 2.7 verwenden? Ich habe 3.6 installiert.
 
[/CODE]
Muss ich zwingend Cpython 2.7 verwenden? Ich habe 3.6 installiert.

Siehe Anbei
Testläufe mit Python2.7 kann man nicht mit Testläufen mit Python 3.x. vergleichen.
Ich frage mich, ob der Zufallszahlengenerator überall das Selbe liefert...
(Falls nicht, gibt es einen Fehler)

SC_bench_memPy3x.py, CPython >=3.5
larslrs i5-5200U (Linux): Runtime in seconds: 61.5
 

Anhänge

  • SC_bench_memPy3x.py.zip
    647 Bytes · Aufrufe: 51
Das sieht nicht gut aus:
Code:
C:\Users\marcf\Downloads\SC_bench_memPy3x.py>SC_bench_memPy3x.py
Generate test data of size 16777216
Checking, if test data is correct
Running the test
Runtime in seconds: 112.45331597328186
 
Zurück