Jump to content

Shader einbinden für 16-235 zu 0-255


infinity

Recommended Posts

Hi,

 

ich hatte mal vor Monaten festgestellt, dass im VMR9 Modus die Farben blass sind...Mir wurde dann die Thematik mit dem Farbraum erklärt, und dass ich damit wohl leben muss, wenn ich VMR9 nutzen möchte. Hm... nun habe ich im Media Player Classic die Shaderfunktion "16-235 to 0-255" gefunden. Als ich das getestet hab, war ich total hin und weg und nun schreib ich hier mal einen Wunsch aus :bye:

 

Leider kann ich mir vorstellen, dass es wohl doch recht aufwendig werden könnte, aber würde mich trotzdem freuen wenn sich hier ein paar Entwickler zu Wort melden und diese Idee vielleicht nicht gleich abtun. Das wäre schon eine perfekte Lösung, wenn man schöne richtige Farben haben möchte und dabei doch noch transparente OSD-parts genießen kann :)

Link to comment
Kannst du das mal genauer erklären?

 

 

also weiß nicht was genau du genauer erklärt haben willst *g*

 

Ich fang mal so an:

Der Overlaymodus hat einen Farbraum von 0-255. Das Schwarz ist schwarz usw., aber man kann halt leider keine transparenten OSD-Segmente haben...

 

Der VMR9 Modus hat einen Farbraum von 16-235. Das heißt, dass das Schwarz nicht wirklich schwarz ist, sondern leicht gräulich und, dass auch sonst die Farben sehr blass ausfallen :)

Dafür kann der VMR9 Modus alles an Effekten, so wie bspw. transparente OSD-Menüs usw..

 

Da ich gerne die Effekte vom VMR9 Modus genießen würde, aber mir die Farben überhaupt nicht gefallen, weil alles wie in einem alten NTSC Film scheint, kann ich diesen Modus nicht nutzen und muss mich mit dem Overlaymode zufrieden geben, der leider keine durchsichtigen OSD-Bilder/Flächen unterstützt und auch auf dem TV-Out nicht sichtbar ist ;)

 

 

 

Nun zu meinem Wunsch:

Modernere Grafikkarten ab ca. Geforce 3 und ATI Radeon 8500 haben Pixel- und Vertexshadereinheiten. Diese Einheiten sind recht leistungsfähig und können einen Film bei Bedarf mitten beim Schauen nachbearbeiten. ATI bietet ja schon seit Jahren im DIVX-Player das Feature des Deblockings an. Das heißt, dass die Grafikkarten-Shadereinheiten den Film beim Anschauen so bearbeiten, dass Artefakte usw. verschwinden...ohne dass man irgendwas davon mitbekommt!

Diese Shader lassen sich in vielerlei Bereichen einsetzen, so auch im Invertieren der Videofarben, im Schärfen des Videomaterials, im Deinterlacing und halt sogar im Umwandeln des recht eingeschränkten VMR9 Farbraumes in den besseren Overlayfarbraum.

 

Dadurch hat man alle Vorzüge vom VMR9 rendering (Transparenz) und dem Overlay (Farben) ohne, dass man irgendwelche Leistungseinbußen befürchten muss. Denn erstens hat man keine Verzögerung durch die Umrechnung, zweitens keine Qualitätseinbußen und drittens keine zusätzliche Prozessorlast, da die Umrechnung ausschließlich in der Grafikkarte stattfindet (ohne jene wirklich zu belasten...).

 

Dies kann man alles in den aktuelleren Media Player Classic Versionen testen, indem man mal unter Optionen/Output auf "VMR9 renderless" und "Use texture surfaces and render video in 3D" stellt - So ist der richtige VMR9 Modus eingestellt. Dann muss man nur noch während des betrachtens per Kontextmenü der rechten Maustaste den gewünschten Shader auswählen und kann das Ergebnis sofort sehen.

 

EDIT

 

Ich hab noch einmal die Schärfenfunktion ausprobiert...Was da an Details herausgearbeitet wird ist auch unglaublich... Ich finde, dass diese Shader wirklich eine interessante Funktion für die Bildqualität sind und würde mir echt wünschen, dass zumindest über das Farbraumproblem nachgedacht wird.

Edited by infinity
Link to comment

OK, jetzt weiß ich was Du meinst. Wäre nur zu klären ob man nun für jede Grafikkarte ein eigenes Shadermodell einbauen muss oder ob das eine generelle Lösung seitens VMR ist.

Wenn es aber in VMR drin sein soll, dann frage ich mich warum das bei VMR nicht als Standard drin ist, immerhin verbessert es ja wie Du sagst die Bildqualität.

 

Bisher dachte ich immer, dass dies von Spieledesignern berücksichtigt wird in dem sie mit dem Grafikkartentreiber direkt kommunizieren. Wenn dem so wäre, dann wäre es echt aufwendig in den DVBViewer einzubauen.. Man müsste dann den DVBViewer der zur Zeit ja auf so ziemlich jeder Hardware läuft eine weitere Einschränkung verpassen und auf aktuelle Treiber hinweisen.

 

Hast Du schon mal auf der Eigenschaftsseite des VMR nachgeschaut? Da lässt sich doch auch schon einiges einstellen. Asicht -> Filter

Vielleicht ist es das schon was Du meinst.

Link to comment
Der VMR9 Modus hat einen Farbraum von 16-235. Das heißt, dass das Schwarz nicht wirklich schwarz ist, sondern leicht gräulich und, dass auch sonst die Farben sehr blass ausfallen :)

 

Was genau ist damit gemeint ? Sind die Farben des Videobildes blass oder geht es nur um die Farben des OSD ?

 

Gruß, dgdg

Link to comment
das TV Bild

 

Klärt mich mal auf, ich stehe gerade auf dem Schlauch. Was ist mit Farbraum gemeint. Das TV-Bild hat doch mehr als 0-255 (bzw. 16-235) Farben ?

 

Oder ist damit der Bereich für jeden einzelnen RGB-Wert gemeint ?

 

Gruß, dgdg

Link to comment
Klärt mich mal auf, ich stehe gerade auf dem Schlauch. Was ist mit Farbraum gemeint. Das TV-Bild hat doch mehr als 0-255 (bzw. 16-235) Farben ?

 

Oder ist damit der Bereich für jeden einzelnen RGB-Wert gemeint ?

 

Gruß, dgdg

 

Ja damit ist wohl jede einzelne Farbe gemeint. Dieses Grauschwarz ist ein Grund wieso ich VMR 9 nicht

mag. Komischerweise scheint diese Einschränkung bei VMR 7 nicht zu bestehen, da ist schwarz = schwarz.

 

MfG Gerd

Edited by gwr
Link to comment

Shader nutzen geht nur, wenn du die Video(textur) in Direct3D nutzt. Ich hab schon vor geraumer Zeit mit solchen Experimenten zusammen mit Lars angefangen, aber dann aufgrund massiver Probleme mit diversen Codecs das ganze Vorerst an den Nagel gehängt. Die Umstellung auf D3D kommt irgendwann einmal, aber da gibt es noch andere Dinge mit mehr Priorität. Übrigens kann man die selben Resultate auch mit einem Postprozessor-Filter erreichen (hab da schon so einige schicke Ideen für).

Die Ansätze für einen Filter der 3d Funktionen von Grafikkarten unterstützt hatte ich letztes Jahr übrigens hier gepostet: http://www.delphigl.com/forum/viewtopic.php?t=4548

 

Christian

PS: Damals war es in OpenGL, danach hatte ich das gleiche in D3D und das war wesentlich schneller :) Allerdings finde ich GL einfacher zu bedienen.

Link to comment
Shader nutzen geht nur, wenn du die Video(textur) in Direct3D nutzt. Ich hab schon vor geraumer Zeit mit solchen Experimenten zusammen mit Lars angefangen, aber dann aufgrund massiver Probleme mit diversen Codecs das ganze Vorerst an den Nagel gehängt. Die Umstellung auf D3D kommt irgendwann einmal, aber da gibt es noch andere Dinge mit mehr Priorität. Übrigens kann man die selben Resultate auch mit einem Postprozessor-Filter erreichen (hab da schon so einige schicke Ideen für).

Die Ansätze für einen Filter der 3d Funktionen von Grafikkarten unterstützt hatte ich letztes Jahr übrigens hier gepostet: http://www.delphigl.com/forum/viewtopic.php?t=4548

 

Christian

PS: Damals war es in OpenGL, danach hatte ich das gleiche in D3D und das war wesentlich schneller :) Allerdings finde ich GL einfacher zu bedienen.

 

 

Oh schön, dass sich mal jemand vom DVBV-Team meldet ;)

 

Ja ich dachte mir auch, dass es ziemlich schwer werden kann. Also ich teste das ja nun ab und zu im MediaPlayerClassic und finde die Funktionen echt spitze. Es funzt bei mir problemlos mit dem Cyberlink Video Decoder und auch mit dem MPC-eigenen Decoder. Beim Mediaplayer Classic wird ja auch unter Umständen per Edit der Shader neu kompiliert, sodass es wohl überall laufen sollte oder so. Ist es euch eigentlich möglich den Teil des opensource Programmcodes vom Media Player Classic zu benutzen? Oder eine Art neuen Filter für den DVBV zu machen?

Link to comment

die meisten OpenSource Codes kann man nicht nutzen ohne erhebliche Quelltextbestandteile aus dem eigenen Programm hinterher veröffentlichen zu müssen. Daher wird es wohl eher auf eine Eigenentwicklung rauslaufen.

Link to comment
(...) Daher wird es wohl eher auf eine Eigenentwicklung rauslaufen.

 

 

sofern dies überhaupt geplant ist, da der Aufwand ja ziemlich hoch sein dürfte :)

Link to comment

Naja als erstes kommt demnächst ein so genannter Postprozessor Filter. Dieser kann neben Deinterlacing auch noch diverse lustige andere Dinge (Bildschärfe, Denoise usw.).

Eine komplette neue Version mit Direct3D dauert allerdings noch.

 

Christian

Link to comment
Naja als erstes kommt demnächst ein so genannter Postprozessor Filter. Dieser kann neben Deinterlacing auch noch diverse lustige andere Dinge (Bildschärfe, Denoise usw.).

Eine komplette neue Version mit Direct3D dauert allerdings noch.

 

Christian

 

 

klingt schonmal toll ;)

Der Postprozessor Filter kann dann aber noch nicht diesen Farbraum korrigieren oder? Für wann ist denn so ein Filter überhaupt so geplant?

Link to comment
Der Postprozessor Filter kann dann aber noch nicht diesen Farbraum korrigieren oder?
Shader nutzen geht nur, wenn du die Video(textur) in Direct3D nutzt. .... Die Umstellung auf D3D kommt irgendwann einmal,
Link to comment
  • 6 months later...

Hi, ich hatte ja mal hier dieses Topic gestartet, weil mich im VMR9 Rendermode genervt hat, dass der Farbraum so schlecht war, dass aus schwarz grau wurde....

 

 

Nachdem ich mir eine Radeon X1950Pro AGP eingebaut habe, hab ich eben mal den VMR9 Modus getestet und staunte, dass die Farben richtig sind, so wie im Overlay!?

 

Liegt das nun an der Karte oder ist das schon länger der fall, dass irgendeine Funktion oder der Catalyst 7.1 oder sonstwas eine Korrektur eingebaut haben?

Link to comment

Liegt wohl wahrscheinlich am Zusammenspiel zwischen Hardware und Treiber. Bei Nvidia ist so, dass bei der Formatumschaltung von 16:9 zu 4:3 im VMR9-Mode Probleme gibt. Da dürfte die Umsetzung ATI etwas besser gelungen sein.

 

Was ist denn überhaupt aus diesem Postprozessor Filter geworden von dem Christian schrieb, klingt sehr interessant?

Link to comment
Liegt wohl wahrscheinlich am Zusammenspiel zwischen Hardware und Treiber. Bei Nvidia ist so, dass bei der Formatumschaltung von 16:9 zu 4:3 im VMR9-Mode Probleme gibt. Da dürfte die Umsetzung ATI etwas besser gelungen sein.

 

Was ist denn überhaupt aus diesem Postprozessor Filter geworden von dem Christian schrieb, klingt sehr interessant?

 

 

naja im vergleich zu nvidia ist das ja kein Fehler oder so. Dass die Farben im VMR9 modus normalerweise schlechter sind, liegt im prinzip des VMR9 Moduses, der halt einen eingeschränkteren Farbraum hat. Aber nun scheints durch irgendwas hingebogen worden zu sein. Frag mich halt nur, ob meine Radeon 9800 Pro das auch nun hinbekommt, denn die x1950 Pro kommt wieder raus, hat irgendwie nen schuss oder so.

Link to comment

also ich habe eine XFX GeForce 7600GT M580 und ich nehme den Unterschied bei den Farben auch nicht so war, aber dafür überspringt der VMR bei mir immer bilder beim Rendern wenn ich den DVBViewer im Vollbild betreibe.

Und ihr habt da von Einstellungen des VMR geredet, die habe ich gar nicht. Ansicht-->filter-->VMR9

da bekomme ich nur so ein kleines "Status Fenster"

Link to comment
also ich habe eine XFX GeForce 7600GT M580 und ich nehme den Unterschied bei den Farben auch nicht so war, aber dafür überspringt der VMR bei mir immer bilder beim Rendern wenn ich den DVBViewer im Vollbild betreibe.

Und ihr habt da von Einstellungen des VMR geredet, die habe ich gar nicht. Ansicht-->filter-->VMR9

da bekomme ich nur so ein kleines "Status Fenster"

 

 

soweit ich eben recherchiert hab, hat nvidia ab dem 84.xx Treiber eine automatische Farbraumumrechnung vom 16-235 zu 0-255 eingebaut. Ich gehe davon aus, dass ATI dies nun auch hat. Aber kann das auch eine Radeon 9800 Pro hinbekommen? Eigentlich stünde dem ja nichts im Wege?

 

Hab gerade wieder meine 9800 Pro drin. Anscheinend ist mit dem Catalyst 7.1 die umrechnung automatisch drin. Auch mit der 9800 Pro hab ich nun die richtigen Farben im VMR9 Modus ;)

Edited by infinity
Link to comment
  • 6 months later...
soweit ich eben recherchiert hab, hat nvidia ab dem 84.xx Treiber eine automatische Farbraumumrechnung vom 16-235 zu 0-255 eingebaut. Ich gehe davon aus, dass ATI dies nun auch hat. Aber kann das auch eine Radeon 9800 Pro hinbekommen? Eigentlich stünde dem ja nichts im Wege?

 

Hab gerade wieder meine 9800 Pro drin. Anscheinend ist mit dem Catalyst 7.1 die umrechnung automatisch drin. Auch mit der 9800 Pro hab ich nun die richtigen Farben im VMR9 Modus :P

 

Sollte Nvidia diese Korrektur mal im Treiber integriert haben, dann ist der Fix in den neuen Treibern wieder entfernt worden. Ich nutze den 94.24er und dort tritt der Fehler definitiv auf. Durch einen Registry-Tweak kann man die Korrektur jedoch einschalten, näheres dazu hier:

http://www.DVBViewer.info/forum/index.php?showtopic=20140

 

Cheereo

NeDrY

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...