Solche Probleme passieren aber auch nur auf einem 64-bit-System, oder wie?!
AVISynth beschleunigen
-
-
Solche Probleme passieren aber auch nur auf einem 64-bit-System, oder wie?!
Soll das jetzt ne Aussage oder Frage sein? :so-nicht:
-
Wenn Du eine nvidia Grafikkarte Dein Eigen nennst,
und wenn sie hier in der Liste auftaucht, dann klappt
eine Beschleunigung sehr gut!Die Lösung heißt DGAVCDecNV!
Gegen eine Spende von 15$ zu erwerben
Ich hab damit eine Geschwindigkeitszuwachs von über 50%
erzielt! Vorher waren es ca. 30-40 FPS mit DGAVC 80-95 FPS. -
Wenn Du eine nvidia Grafikkarte Dein Eigen nennst,
und wenn sie hier in der Liste auftaucht, dann klappt
eine Beschleunigung sehr gut!Die Lösung heißt DGAVCDecNV!
Gegen eine Spende von 15$ zu erwerben
Ich hab damit eine Geschwindigkeitszuwachs von über 50%
erzielt! Vorher waren es ca. 30-40 FPS mit DGAVC 80-95 FPS.Das es damit klappt, will ich ja nichtmal bestreiten. Vielleicht kannst Du aber bitte mal schildern, was Du für ein System hast.
Ist dein OS 32 oder 64Bit, was genau und was hast Du für eine Karte dabei verwendet? Frage ist dabei, nicht dass eine GTX295 es packt, sondern wie gross der Unterschie dabei zu meiner alten 88GTS ist.EDIT:
So ich habe also alles noch einmal geprüft, Skripte verändert und irgendwie will es aber noch nicht so richtig klappen. Ich habe langsam keine Ahnung mehr, woran es liegen mag.
Mein Vorgehen sieht wie folgt aus:- CUVIDServer - gestartet
- DGAVCIndexNV - gestartet
- DGA Datei erstellt von einem AVC Stream 4.1
- Skript erstellt:
- AvsP - gestartet um Skript zu testen.
- HCEnc 0.23 - gestartet um ohne Test zu encoden
Bei den Punkten 5 & 6 gibt es Probleme. Der HCEnc hängt sich nach dem Laden des Skriptes pauschal immer auf.
AvsP schafft es, die AVS-datei zu laden und entsprechend ein Bild auszugeben, hier kann ich im Film auch den Regler verschieben um zu einzelnen Frames zu kommen.
Wenn ich AvsP beende und nochmal starte, klappts wieder nicht. Ich muss jedesmal den CUVIDServer neu starten, bevor ich einen neuen Versuch machen kann.Das Lustige daran allerdings ist ja, dass ein Bekannter mit ähnlicher Hardware und Vista 64Bit Ultimate den CCE installiert hat, hier beginnt das Encoding ohne Murren. Wir haben es allerdings nicht bis zum Schlus getestet, evtl. gibts da erst später die Probleme.
Kann mit der Fehlerbeschreibung jetzt wohl noch jemand etwas anfangen??
-
Zu Deiner Frage,
Mein Betriebssystem ist XP 32 Bit, Q9550 mit einer Geforce 9700GT.
-
So,
ich hab es dann auch endlich hinbekommen mit dem DGAVCIndexNV und das auf einem 64bit Vista.
Kleinere Fehler lagen darin, dass ich wohl letztendlich noch eine veraltete DLL im plugin-Verzeichnis hatte.
Weiterhin habe ich wohl das Quick-Manuel zu quick gelesen und die Source weiterhin mit AVCSource statt DGSource eingebunden.Weitere Änderung zur alten Konfiguration ist die Tatsache, dass ich jetzt den HCEnc in der Version 0.24b verwende.
Um hier aber noch ein representativen Vergleich zu schreiben, ist es leider noch etwas zu früh.
Kommt aber bald mal der Vergleich von DGAVCIndex vs. DGAVCIndexNV.Gruss
Fisker -
Jetzt wo ich das lese, fällt mir auf, dass ich die Source auch mit AVCSource einbinde und nicht mit DGSource, läuft aber bei mir bisher ohne Probleme.
Freut mich aber das Du das Problem gelöst hast.
Was mir bei Deinem Vorgehen noch aufgefallen ist, das Du den CUVIDServer
vor dem erstellen der dga Datei bereits lädst, dieser soll aber erst nach dem erstellen der dga Datei geladen werden. -
Jetzt wo ich das lese, fällt mir auf, dass ich die Source auch mit AVCSource einbinde und nicht mit DGSource, läuft aber bei mir bisher ohne Probleme.
Freut mich aber das Du das Problem gelöst hast.
Was mir bei Deinem Vorgehen noch aufgefallen ist, das Du den CUVIDServer
vor dem erstellen der dga Datei bereits lädst, dieser soll aber erst nach dem erstellen der dga Datei geladen werden.OK, hab das auch nochmal nachgelesen im AVCQuickStart.html. Allerdings dürfte das doch keine Auswirkungen haben oder?
Derzeit sieht es so aus, als wenn ich 720p Sources auf PAL-Format im 2-pass in unter 100min. encoden kann. Wieviel schneller das jetzt aber gegen die alte Methode ist, keine Ahnung. -
Denke nicht das es Auswirkungen hat, zumindest konnte ich noch keine feststellen.
Na das kannst doch einfach rausfindendga mit DGAVCIndex erstellen und das gleich File nochmal encoden
-
Denke nicht das es Auswirkungen hat, zumindest konnte ich noch keine feststellen.
Na das kannst doch einfach rausfindendga mit DGAVCIndex erstellen und das gleich File nochmal encoden
Hmmm, ich würd ja gern einen solchen Vergleich machen, geht aber leider derzeit nicht.
Ich habe ein neues DGA-File erzeugt mit DGAVCIndex. Wenn ich dies allerdings im AvsP mit dem gleichen bzw. angepassten Skript laden will, kommt nur die Meldung, CUVIDServer läuft nicht. Wenn er dann läuft, wird die DGA-Datei nicht als Projektdatei anerkannt.Eine weitere Frage habe ich noch:
Bei AVCSource konnte man den Parameter "deblock=true" mit einhängen. Dies gibt es bei DGSource nicht mehr. Kann ich die gleiche Funktion auch anders erzeugen?Gruss
Fisker -
Dann schmeißt du hier anscheinend DGAVCDec und DGAVCDecNV durcheinander.
Sauber bleiben! Immer darauf achten, die DGAVCIndex.exe, die DGA-Datei und die DGAVCDec.dll von exakt der selben Variante zu verwenden!
-
Dann schmeißt du hier anscheinend DGAVCDec und DGAVCDecNV durcheinander.
Sauber bleiben! Immer darauf achten, die DGAVCIndex.exe, die DGA-Datei und die DGAVCDec.dll von exakt der selben Variante zu verwenden!
Ich hab das komplette Paket noch einmal neu runter geladen um sauber zu sein. Die DGAVCDecode.dll ins pllugins Verzeichnis geschoben und wieder am gleichen Ergebnis raus gekommen.
Die DGA Dateiw ird nicht als gültige Prjekt-Datei anerkannt.Allerdings steht auch weiterhin och die Frage für mich offen, wie die Funktion deblock=true umgesetzt werden kann?
Gruss
Fisker -
Das Kopieren der DLL in das Plugins-Verzeichnis alleine garantiert noch lange nicht, dass die richtige DLL als Plugin geladen wird. Insbesondere wenn zwei verschiedene DLLs im Plugins-Verzeichnis liegen, die die gleiche Funktion anbieten, wäre das Zufall. Die einzig zuverlässige Lösung ist, die DLL mit LoadPlugin() im Skript explizit zu laden.
Als Alternative kann man noch den Namen der DLL mit Unterstrich an den Funktionsnamen anhängen, also "AVCSource_DGAVCDec" oder "AVCSource_DGAVCDecNV" je nach Bedarf.
"deblock=true" ist Standard für den AVCSource-Aufruf. Wenn man den Parameter nicht angibt, wird also auch der Deblockingfilter verwendet. Man kann ihn nur mit "deblock=false" ausschalten, aber das wäre nicht sinnvoll.
-
Wie LigH schon geschrieben hat, musst Du die .dll des jeweiligen Plugins explizit im AVS Script laden. (Steht aber auch in der Beschreibung von DGAVCNVIndex),
auch wenn sie beide im PLuginverzeichnis liegen, denn woher soll AviSynth denn wissen welche .dll es verwenden soll, wenn beide die gleiche Aufgabe erledigen. -
Bei AVCSource konnte man den Parameter "deblock=true" mit einhängen. Dies gibt es bei DGSource nicht mehr. Kann ich die gleiche Funktion auch anders erzeugen?
ich möchte diese Frage hier nochmal in den Raum werfen.
AVCSource hat die Möglichkeit geboten bzw. hatte die Standardeinstellung von deblock=true innerhalb der Funktion. Auch nach langem Suchen, habe ich nichts vergleichbares gefunden für DGSource oder wenigstens einen Hinweis darauf, wie das jetzt gelöst wurde.
Weiss von Euch jemand einen Rat oder hat nen Link zum Schlau werden?Gruss
Fisker -
Anscheinend bietet DGMPGDecNV in der Funktion DGDecode keine Einstellung des Deblockers an, weil es keinen Einfluss darauf hat, wie die CUDA-Routinen das innerhalb der Grafikkarte durchführen.
Wenn du zusätzlich noch extra ein Deblocking durchführen willst, kannst du aus dem DGMPGDec-Paket (ohne ~NV) die Funktion "BlindPP" verwenden. Das hat jedoch den Nachteil, dass dieses zusätzliche Postprocessing nun keine Information über die unsprüngliche Quantisierung hat - man muss hier einen theoretischen Quantisierungsfaktor angeben, der die Filterwirkung steuert.
-
So,
nach Euren Tips von wegen Einbinden der Source und Zuweisung der DLL via "_" hat alles funktioniert und ich kann ein Ergebnis präsentieren.
Zuerst, hier das Logfile vom HCEnc ohne NV:
Code---------------------------------------------- | HCenc - MPEG2 encoder - rel. 0.24.0.0 beta | ----------------------------------------------MPEG profile@level: MP@MLinput: f:\program files (x86)\encode\hc023\avs\045.avsoutput: F:\TEMP\Encode\Movie.m2v -------------------- | encoder settings | --------------------profile: BESTframes: 0 - 206368framerate: 25.000aspect ratio: 16:9chroma format: 4:2:0bitrate Kb/s: 7184max. bitrate Kb/s: 8882pulldown: noclosed gops: noVBV check: yesscene change det.: yesinterlaced: no, BFFgoplen,B-pic: AUTOdc_precision: 9intraVLC: autoscan method: zigzagbias: 25chapter frames: 33time code: 0 0 0 0CPU: SSE4 (4.1)priority: normalSMP active: yesmatrix: MPEG, adaptiveluminance gain: yes, level 1adaptive quantization: yes, strength 1 ------------------ | source stats | ------------------nr. of frames in source: 206369width*height: 720x576fps: 25.000nr. of frames to encode: 206369frames to encode: 0 - 206368 --------------------- | encoding - pass 1 | ---------------------[COLOR='Red']pass 1 encoding time: 2:49:54 (10193.77 s)fps: 20.2[/COLOR] -------------------------------- | encoding - intermediate pass | --------------------------------bitrate set to: 7184 kb/sestimated output file length: 7239038 kBintermediate encoding time: 0.75 s --------------------- | encoding - pass 2 | ---------------------[COLOR='Red']pass 2 encoding time: 2:56:33 (10593.13 s)fps: 19.5[/COLOR] ------------------ | encoding stats | ------------------adapted intra matrix usedadapted non-intra matrix usednr. of gops: 15330nr. of frames: 206369nr. of I-frames: 15330nr. of P-frames: 76092nr. of B-frames: 114947average bitrate: 7184minimum bitrate: 148maximum bitrate: 8881bytes in bitstream: 7414632448bits in bitstream: 59317059584average Quantizer: 3.787[COLOR='Red']total CPU time: 6:58:27 (25106.99 s)total elapsed time: 5:46:30 (20790.49 s)[/COLOR]
folgendes AVS wurde dabei verwendet:
und hier jetzt, das gleiche Sourcefile mit NV-Unterstützung:
Code---------------------------------------------- | HCenc - MPEG2 encoder - rel. 0.24.0.0 beta | ----------------------------------------------MPEG profile@level: MP@MLinput: f:\program files (x86)\encode\hc023\avs\045_nv.avsoutput: F:\TEMP\Encode\Movie_NV.m2v -------------------- | encoder settings | --------------------profile: BESTframes: 0 - 206368framerate: 25.000aspect ratio: 16:9chroma format: 4:2:0bitrate Kb/s: 7184max. bitrate Kb/s: 8882pulldown: noclosed gops: noVBV check: yesscene change det.: yesinterlaced: no, BFFgoplen,B-pic: AUTOdc_precision: 10intraVLC: autoscan method: zigzagbias: 25chapter frames: 33time code: 0 0 0 0CPU: SSE4 (4.1)priority: normalSMP active: yesmatrix: HC, adaptiveluminance gain: yes, level 1adaptive quantization: yes, strength 1 ------------------ | source stats | ------------------nr. of frames in source: 206369width*height: 720x576fps: 25.000nr. of frames to encode: 206369frames to encode: 0 - 206368 --------------------- | encoding - pass 1 | ---------------------[COLOR='Red']pass 1 encoding time: 1:18:37 (4716.55 s)fps: 43.8[/COLOR] -------------------------------- | encoding - intermediate pass | --------------------------------bitrate set to: 7184 kb/sestimated output file length: 7239038 kBintermediate encoding time: 0.75 s --------------------- | encoding - pass 2 | --------------------- *** INFO, adjusting average bitrate: -0.01 %[COLOR='Red']pass 2 encoding time: 1:20:16 (4815.77 s)fps: 42.9[/COLOR] ------------------ | encoding stats | ------------------adapted intra matrix usedadapted non-intra matrix usednr. of gops: 15330nr. of frames: 206369nr. of I-frames: 15330nr. of P-frames: 76092nr. of B-frames: 114947average bitrate: 7183minimum bitrate: 148maximum bitrate: 8881bytes in bitstream: 7414237712bits in bitstream: 59313901696average Quantizer: 3.568[COLOR='Red']total CPU time: 2:43:25 (9804.73 s)total elapsed time: 2:38:58 (9537.86 s)[/COLOR]
hier wurde die Quelle folgendermassen eingebunden:
Bei den Zeiten gibt es ja nun deutliche Unterschiede zu sehen, hier bin ich wirklich beeindruckt. Eine Zeitersparnix von über 4h war mit Sicherheit nicht zuerwarten, oder?
Der Thread wird heute NAchmittag hier noch einmal editiert mit Vergleichscreens.
Eine solche Zeitersparnis mit NV hätte ich jedoch nciht erwartet.Hier noch ein paar Angaben zum verwendeten System dabei:
CPU = Q9450 @ 3,4 GHz
GPU = GTX-285
RAM = 4 GB
SYS = Vista Ulti. 64 BitGruss
Fisker -
Nicht schlecht, das ist wirklich beeindruckend, dahaben sich die Zeiten ja gut halbiert.
(Vielleicht doch mal über ne neue Grafikkarte Nachdenken) -
Na das hört sich doch super an und bestätigt meine Erfahrung!
Bei mir haben sich auch die Encodingzeiten um 50% reduziert,
bei gleichbleibendem Ergebnis!Kann DGAVCNVIndex jedem der mit AVC Material arbeitet empfehlen, sich eine
nvidia Grafikarte mit CUDA zu kaufen (hab ich auch nur deshalb getan
ins blaue rein )Nur eine Frage hätte ich noch, hab nochmal bei neuron vorbeigeschaut und
dort wird die Source doch auch mit AVCSource eingebunden, wie bist Du
denn auf DGSource gekommen?
Habe es bisher damit noch nicht getestet. -
Nur eine Frage hätte ich noch, hab nochmal bei neuron vorbeigeschaut und
dort wird die Source doch auch mit AVCSource eingebunden, wie bist Du
denn auf DGSource gekommen?
Habe es bisher damit noch nicht getestet.Das habe ich hier gelesen: LINK
Wenn deine Methode anders aussieht, wäre es aber schön zu erfahren, wie Du die Source in das Skript einbindest.
Ich muss gestehen, ich hab es bisher noch nicht versucht über den Aufruf:
DGAVCDecodeNV_AVCSource("...")Gruss
Fisker -
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!