[Sammelthread] ffdshow/avisynth - Videopostprocessing in Echtzeit... Teil 2

Da taucht bei mir aber kein "Shader Complex2a" auf.
Dort gibt es nur den Punkt "Filter", aber darunter finde ich auch nichts.
Deswegen habe ich ja nochmal nachgefragt, nicht das ich irgenwas falsch gemacht habe.

Aber ich denke mal das ist der falsche Thread um das hier zu diskutieren, oder ?


Edit: Jetzt hab ich´s. Unter Optionen / DirectX / muss ein Haken bei Custom Renderer rein.
Habt ihr ja auch so geschrieben, tja wer lesen kann ist klar im Vorteil.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Hm vielleicht ist der gar nicht per default dabei?
Die Shader sind ja durch User erweiterbar.

Hier der Code für den verlangten Complex2a:

Code:
<?xml version="1.0" encoding="iso-8859-1"?>
  <Shader>
    <Profile>ps_2_a</Profile>
    <Description>complex2a</Description>
    <Code>//////////////////////////////////////////////////// 
// Sharpen complex v2 (nécessite ps >=2a)
//////////////////////////////////////////////////// 
sampler s0 : register(s0); 
float4 p0 : register(c0); 
float4 p1 : register(c1); 

// résolution de l&apos;image
#define width (p0[0]) 
#define height (p0[1]) 
// "largeur" d&apos;un pixel
#define px (p1[0])
#define py (p1[1])


//////////////////////////////////////////////////// 
// Paramètres
//////////////////////////////////////////////////// 
  // pour le calcul du flou
#define moyenne 0.6
#define dx (moyenne*px)
#define dy (moyenne*py)

#define CoefFlou 2
#define CoefOri (1+ CoefFlou)

  // pour le sharpen
#define SharpenEdge       0.2
#define Sharpen_val0       2 
#define Sharpen_val1       ((Sharpen_val0-1) / 8.0)


//////////////////////////////////////////////////// 
float4 main( float2 tex : TEXCOORD0 ) : COLOR 
{ 
  // recup du pixel original
                float4 ori = tex2D(s0, tex); ; 

//////////////////////////////////////////////////// 
// calcul image floue (filtre gaussien) 
//////////////////////////////////////////////////// 
                float4 c1 = tex2D(s0, tex + float2(-dx,-dy)); 
                float4 c2 = tex2D(s0, tex + float2(0,-dy)); 
                float4 c3 = tex2D(s0, tex + float2(dx,-dy)); 
                float4 c4 = tex2D(s0, tex + float2(-dx,0)); 
                float4 c5 = tex2D(s0, tex + float2(dx,0)); 
                float4 c6 = tex2D(s0, tex + float2(-dx,dy)); 
                float4 c7 = tex2D(s0, tex + float2(0,dy)); 
                float4 c8 = tex2D(s0, tex + float2(dx,dy)); 

  // filtre gaussien
  //   [ 1, 2 , 1 ] 
  //   [ 2, 4 , 2 ] 
  //   [ 1, 2 , 1 ] 
  // pour normaliser les valeurs, il faut diviser par la somme des coef 
  // 1 / (1+2+1+2+4+2+1+2+1) = 1 / 16 = .0625 
                float4 flou = (c1+c3+c6+c8 + 2*(c2+c4+c5+c7)+ 4*ori)*0.0625; 

  // soustraction de l&apos;image flou à l&apos;image originale 
                float4 cori = CoefOri*ori - CoefFlou*flou; 

//////////////////////////////////////////////////// 
// détection des contours 
//////////////////////////////////////////////////// 
  // récuppération des 9 voisins 
  //   [ c1, c2 , c3 ] 
  //   [ c4,ori , c5 ] 
  //   [ c6, c7 , c8 ] 
                c1 = tex2D(s0, tex + float2(-px,-py)); 
                c2 = tex2D(s0, tex + float2(0,-py)); 
                c3 = tex2D(s0, tex + float2(px,-py)); 
                c4 = tex2D(s0, tex + float2(-px,0)); 
                c5 = tex2D(s0, tex + float2(px,0)); 
                c6 = tex2D(s0, tex + float2(-px,py)); 
                c7 = tex2D(s0, tex + float2(0,py)); 
                c8 = tex2D(s0, tex + float2(px,py)); 

// par filtre de sobel 
   // Gradient horizontal 
   //   [ -1, 0 ,1 ] 
   //   [ -2, 0, 2 ] 
   //   [ -1, 0 ,1 ] 
                float delta1 =  (c3 + 2*c5 + c8)-(c1 + 2*c4 + c6); 

   // Gradient vertical 
   //   [ -1,- 2,-1 ] 
   //   [  0,  0, 0 ] 
   //   [  1,  2, 1 ] 
                float delta2 = (c6 + 2*c7 + c8)-(c1 + 2*c2 + c3); 

   // calcul 
                if( sqrt( mul(delta1,delta1) + mul(delta2,delta2) ) >SharpenEdge ) 
                { 
//////////////////////////////////////////////////// 
// si contour, sharpen 
                               //            return  float4(1,0,0,0);
                               return ori*Sharpen_val0 - (c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8 ) * Sharpen_val1 ;  
                } 
                else 
                { 
//////////////////////////////////////////////////// 
// sinon, image corrigée 
                               return cori; 
                } 
}</Code>
  </Shader>

In den Editor kopieren und als complex2a.xml im Verzeichnis .../dvbviewer/Shader speichern.
 
Danke dir, aber hat sich schon erledigt, hatte vergessen den Haken bei Custom Renderer zu setzen.
Sorry.

Matze
 
ehm ich nutze SAF mit mediaportal. gibts da ne möglichkeit ffdshow noch zuzuschalten um upscaling von live tv durchzuführen?
 
Na alle ihre scripte gefunden so das hier nix mehr los ist???
 
Na alle ihre scripte gefunden so das hier nix mehr los ist???

habe erst vor ein paar tagen angefangen, mich dafür zu interessieren.

hat auch schon mal jemand eines gefunden, welches nicht ganz so einen starken soap-effekt aufweist, oder liegt das generell in der natur der sache?

EINES hatte ich ja gefunden, aber dieses führt dann bei bei laufschrift wieder zu fehldarstellungen:

Code:
setmtmode(2)
video=ffdshow_source()
A=video
B=A.MSuper(pel=2, hpad=8, vpad=8,  rfilter=4)
One=B.MAnalyse(isb=true, blksize=16, search=1, searchparam=2)
Two=B.MAnalyse(isb=false, blksize=16, search=1, searchparam=2)
Three=B.MRecalculate(One, chroma=false, blksize=32, blksizev=32, search=1, searchparam=2)
Four=B.MRecalculate(Two, chroma=false, blksize=32, blksizev=32,  search=1, searchparam=2)
A.MBlockFps(B, Three, Four, num=FramerateNumerator(video)*2, den=FramerateDenominator(video)*1, mode=1)
GetMTMode(false) > 0 ? distributor() : last

bei vielen treten eben auch öfter mal artefakte auf, oder auch ein effekt, welchen ich als "vertikal-tearing bezeichnen würde"

ich benutze den framedoubler sowieso nur für xvid/divx bis 576p

für höhere auflösungen, wo meistens x264 zum einsatz kommt, nutze ich eher einen decoder, welcher dxva-fähig ist und verzichte dann auf weiteres postprocessing.

....und BIS 576p sollte doch auch ein leistungshungriger framedoubler auf meinen 8400@3800MHz nicht überfordern.

also wichtig wäre:
reduzierter soap-effekt
möglichst fehler-/artefaktfreie darstellung

schärfen muss im script nicht unbedingt enthalten sein.
ich skaliere mit ffdshow NACH dem framedoubler auf 1600 horizontal und schärfe dann noch ein wenig per shader im dvbviewer.
das genügt mir bei xvid/divx.
da muß ich nicht noch mit klimmzügen ala seesaw und limitedsharpen usw. anfangen, wodurch dann die cpu-leistung für einen guten framedoubler am ende doch zu knapp werden könnte.
 
Zuletzt bearbeitet:
hat auch schon mal jemand eines gefunden, welches nicht ganz so einen starken soap-effekt aufweist, oder liegt das generell in der natur der sache?
Ist imho prinzipbedingt, Soap-Effekt-Kritiker würden das wohl auch bei direkt mit 50 realen Vollbildern pro Sekunde aufgenommenen Filmen bemängeln.
Ist schlicht und einfach die Gewohnheit an das "Geruckel" in Kino, Bluray & co.
 
Ist imho prinzipbedingt, Soap-Effekt-Kritiker würden das wohl auch bei direkt mit 50 realen Vollbildern pro Sekunde aufgenommenen Filmen bemängeln.
Ist schlicht und einfach die Gewohnheit an das "Geruckel" in Kino, Bluray & co.

naja, aber z.b. zdf hd und arte hd senden doch auch mit 50 bildern und da habe ich diesen effekt doch nicht?

ok, mag sein, daß ich da jetzt irgendein theoretisches prinzip nicht verstehe ;)
 
ARD/ZDF HD senden zwar grundsätzlich immer in 50 Vollbildern pro Sekunde, allerdings sind das bei weitem nicht immer 50 unterschiedliche Bilder pro Sekunde.
Bei Filmen wird da einfach jedes Bild doppelt gezeigt, somit kein sichtbarer Unterschied zu 25...
 
Der soap effekt ist normal und kommt von film zu film mal billig und mal richtig fett!
 
Habt ihr mal versucht downsampling zu machen???
also ich habe mal einfach mit der NV systemsteuerung ne neue auflösung gesetzt in meinem fall die doppelte TV auflösung (1365x768 x2 ---> 2730x1536) dann habe ich mal alles an postprocessing rausgenommen und mir das TV bild angesehen und bin begeistert wie gut das bild aussieht!! Da braucht man eigentlich kein ffdshow mehr für top bildqualität und die cpu muss auch nix mehr berechnen!
 
Lg pg6000 50"
 
Zuletzt bearbeitet:
Kann da keinen wirklichen Sinn dahinter erkennen, man lässt die Hälfte der Pixel dazurechnen, um dann wieder vom Fernseher die Hälfte verwerfen zu lassen!?
 
Im Hififorum bin ich auf diesen Player gestoßen der angeblich eine gute, grafikkartenbeschleunigte Zwischenbildberechnung bieten soll Mirillis - Enjoy High Definition

Evtl. interessiert es ja jemanden, könnte man bestimmt in ein Mediacenter als externen Player einbinden oder codecmäßig irgendwas extrahieren :d
 
off topic

@MrWiFi
Zu Deiner Sig: "No highs, no lows, it must be Bose" könntest ruhigen Gewissens folgenden Spruch hinzufügen:
Highs and lows, but nothing in the middle? It must be Teufel...
 
hi wisst ihr, wie ich den oberen rand von einem video wegschneiden kann mit ffdshow?
 
Kann da keinen wirklichen Sinn dahinter erkennen, man lässt die Hälfte der Pixel dazurechnen, um dann wieder vom Fernseher die Hälfte verwerfen zu lassen!?

downsampling ist im grunde sowas wie ordered-grid-super-sampling-antialiasing (OGSSAA). im falle einer skalierung per grafikkarte wird das bild bereits vor der ausgabe wieder auf die vom LCD/TV/Projektor mögliche auflösung heruntergerechnet.



(..)

mfg
tobi
 
Zuletzt bearbeitet:
off topic

@MrWiFi
Zu Deiner Sig: "No highs, no lows, it must be Bose" könntest ruhigen Gewissens folgenden Spruch hinzufügen:
Highs and lows, but nothing in the middle? It must be Teufel...

Im gegensatz zu Bose macht Teufel in den höheren klassen durchaus anständige ware, für heimkino ( nicht Stereo ). :shot:
 
Nur daß nichts mißverstanden wird:
Im Auto habe ich ne Bose Anlage, und die klingt gut..... für ne Auto Anlage.
Im WZ hat die Teufel ConceptS die nach 2 transkontinentalen Umzügen angedegte Bose IV Heimkinoanlage ersetzt. Preis/Leistung was (fast) nicht schlagbar.

Wenn ich könnte wie ich wollte.... dann stünde was hier schon längst bei mir.
Bis dahin klingen die Teufel im WZ und Bose im auto super!


Wer's noch nicht gemerkt hat: mru langweilt sich weil F1 heute erst um 17:00 startet..

:btt:
 
hi wisst ihr, wie ich den oberen rand von einem video wegschneiden kann mit ffdshow?

Ich weiß nicht ob du das meinst aber ich habe bei größenänderung nur den ersten wert angegeben also 1366xXXX der zweite ergibt sich automatisch
allerdings gibt es filme die halt nicht 16/9 sind sondern 16/7 oder so und da hat man immer balken da hilft dann nur , bei mediaportal, auf zoom zu stellen!
 
Ich weiß nicht ob du das meinst aber ich habe bei größenänderung nur den ersten wert angegeben also 1366xXXX der zweite ergibt sich automatisch
allerdings gibt es filme die halt nicht 16/9 sind sondern 16/7 oder so und da hat man immer balken da hilft dann nur , bei mediaportal, auf zoom zu stellen!
hi, ich meinte speziell fernsehaufnahmen, die haben am rand immer "bildinformationen" die sich z.b. als weiße striche darstellen. und die würde ich gern ausblenden oder wegschneiden.
 
hmm sowas kenne ich garnicht!!
 
Das sind "geheime" Informationen in der Abtastlücke.
Dazu musst du in deiner TV Software ein paar Pixel rauszoomen.
 
Hallo allerseits,

bin nach dem Umbau meines HTPCs seit ein paar Tagen am Experimentieren mit avisynth, aber bekomme keine guten Ergebnisse produziert: Die diversen Skripte, die ich hier, hier oder hier finde, scheinen für meinen Rechner unmöglich, die Auslastung mindestens des ersten Kerns ist bei 100 Prozent und die Videos ruckeln deutlich. Ich würde gerne DVDs und insbesondere Kraut-und-Rüben-SD-Material aufwerten und bin inzwischen ziemlich desillusioniert, obgleich ich mich streng an die Anleitungen gehalten habe.

Ist mein Rechner zu schwach? Habe einen AMD Athlon II X2 240 auf einem Gigabyte GA-880GMA-UD2H-Board.

Danke für eure Antworten und Hilfe!
 
Den kleinen Athlon bekommst du je nach Skript locker überfordert.
Versuchs erstmal ohne avisynth.
 
Zuletzt bearbeitet:
Nur Seesaw oder LSF dürfte der 240er aber packen, da ist bestimmt sonst irgendwo der Wurm drinn oder Resize vors Schärfen platziert, sse3 Plugin vergessen etc. etc...
 
Danke für eure Antworten! Die Einstellungen habe ich direkt von den Seiten genommen bzw. nichts verändert, Resize ist vor Avisynth plaziert. Allerdings setzt das Ändern der Größe meinen Rechner schon schachmatt, nur Avisynth funktioniert noch mit LSF bei 80-90% Auslastung, hat bei SeeSaw allerdings schon Tonaussetzer.

Komischerweise sieht das Bild ohne Resize und nur mit LSF oder SeeSaw schlechter aus als ohne Resize und ohne Avisynth - Kanten etwa werden geglättet, die bei der Nachbearbeitung einen deutlichen Treppcheneffekt aufweisen.
 
Seesaw oder LSF sollten erst nach dem resize einsetzen.
Das ist eigentlich bei jedem Schärfefilter zu empfehlen.

Natürlich braucht das deutlich mehr Rechenleistung.
Du kannst es daher auch mal umgekehrt versuchen (zuerst LSF und dann resize).
Viele verwenden das so und sind zufrieden - Theorie vs Praxis ;)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh