Jump to content

Video-PostProcessing und Shader


CiNcH

Recommended Posts

  • Replies 118
  • Created
  • Last Reply

Top Posters In This Topic

  • CiNcH

    37

  • nuts

    26

  • vonMengen

    15

  • Tüftler

    12

Top Posters In This Topic

Posted Images

Ich bin da mit dem Scripting nicht auf dem laufenden... aber kann man nun für HD und SD einen unterschiedlichen Shader festlegen? Problem ist nämlich, dass SD auf BT.601 beruht und HD auf BT.709. Je nachdem, auf welchem Standard der Shader beruht, hat man dann für das jeweils andere Format leicht verfälschte Farben...

Link to comment

Wenn du dich kurz geduldest erweitere ich mein Script mal. Im Moment verwende ich nur bei SD einen aber die Anpassung sollte kein Problem darstellen.

Derweilen darfst du mir den Link für die passende WinRar Version raussuchen.;)

Link to comment

Du kannst mit der Datamanagervariablen #TV.video.vres ermitteln ob ein HD / SD Sender vorliegt und dann einen ensprechenden Shader setzen (mit der neusten internen Beta).

 

@Tüftler: Was los zu faul zu googeln? :D

http://www.winrar.de/

Edited by nuts
Link to comment

Das ist ein 7-Zip Archiv. Das lässt sich also ohne Schwierigkeiten mit 7-Zip ( http://www.7-zip.org/ ) öffnen. Was meiner Meinung nach sowieso die bessere alternative zu WinRAR ist ;) (ja .rar Dateien kann man damit unter anderem auch öffnen und man kann auch .zip Archive erstellen). Und wer es Trotzdem nicht installieren will für den gibt es das auch hier http://portableapps.com/apps/utilities/7-zip_portable 7-Zip Portable.

Link to comment

Im Anhang die vbs Dateien. Beide im Scriptverzeichnis versenken.

BTW: Funktioniert derzeit natürlich nur mit der internen DVBViewer Version. (Achtung, noch nicht bis ins Detail durchgecheckt!)

shaderset.zip

Und danke nuts sowie Tjod für die Links.

 

Edit:

@Tjod

7zip Portable stolpert bei dem Format, WinRar aus nuts Link dagegen funktioniert!

Edited by Tüftler
Link to comment

Vorweg: ich habe keine Ahnung von Shadern.

 

aber: welches von den 4-2-0_chroma_upsampler nimmst du?

 

und irgendeine Idee wieso DVBViewer sich komplett aufhängt bei egal welchem Shader

von den doom9 Posts?

 

Die mitgelieferten Shader von DVBViewer funktionieren.

Link to comment

BTW: Funktioniert derzeit natürlich nur mit der internen DVBViewer Version. (Achtung, noch nicht bis ins Detail durchgecheckt!)

 

Schön zu hören, dass in die Richtung was gemacht wird!

Link to comment

Schön zu hören, dass in die Richtung was gemacht wird!

Da kommt sicher noch einiges mehr. Von meiner Seite zumindest versuche ich gerade was zu Scripten und es läuft schon in Ansätzen (ohne jetzt auf Details einzugehen).

BTW: Welcher Sender von Sky sendet dieses 3D-Zeugs? Am Besten die Senderparameter mal hier reinstellen.

Link to comment

 

 

[Channel0]
TunerType=1
Frequency=12382
Polarity=h
Symbolrate=27500
FEC=8
APID=259
VPID=255
PMTPID=96
PCRPID=255
AC3=17
TelePID=32
SID=117
StreamID=11
NetworkID=133
LNB-Selection=1
LNB=10600
DiseqC=3
DiSEqCValue=0
Root=New Root
Name=Sky 3D (deu)
Category=SKY
Encrypted=25
SatModulation=5
Group=0
Language=deu
EPGFlag=0
Volume=0
Audiochannel=0
OrbitalPos=192

[Channel1]
TunerType=1
Frequency=12382
Polarity=h
Symbolrate=27500
FEC=8
APID=260
VPID=255
PMTPID=96
PCRPID=255
AC3=17
TelePID=32
SID=117
StreamID=11
NetworkID=133
LNB-Selection=1
LNB=10600
DiseqC=3
DiSEqCValue=0
Root=New Root
Name=Sky 3D (eng)
Category=SKY
Encrypted=153
SatModulation=5
Group=0
Language=eng
EPGFlag=0
Volume=0
Audiochannel=0
OrbitalPos=192

 

Hier der Sky 3D Sender.

Link to comment
  • 1 month later...

Wurden die neuen Shader im Doom9-Forum wieder rausgenommen oder muss man sich da anmelden um sie zu sehen?

 

Hier mal mein erster Versuch die Shader "YV12 Chroma Upsampling" und "Sharpen Complex 2" zu vereinen.

Ist mehr durch Trial&Error entstanden als durch wirkliches Verständnis, scheint aber geklappt zu haben:

 

 

<?xml version="1.0" encoding="iso-8859-1"?>
   <Shader>
       <Profile>ps_2_a</Profile>
       <Description>Sharpen Complex 2 + YV12 Chroma Upsampling</Description>
       <Code>
           sampler s0 : register(s0); 
           float4 p0 : register(c0); 
           float4 p1 : register(c1); 
           #define width (p0[0]) 
           #define height (p0[1])
           #define px (p1[0])
           #define py (p1[1])
           #define moyenne 0.6
           #define bx (moyenne*px)
           #define by (moyenne*py)
           #define CoefFlou 2
           #define CoefOri (1+ CoefFlou)
           #define SharpenEdge       0.25
           #define Sharpen_val0       2.5
           #define Sharpen_val1       ((Sharpen_val0-1) / 8.0)

           float4 getPixel(float2 tex, float dx, float dy)
           {
               tex.x+=dx;
               tex.y+=dy;
               return tex2D(s0, tex);
           }

           float4 rgb2yuv(float4 rgb)
           {
               float4x4 coeffs=
                   {
                        0.299, 0.587, 0.114, 0.000,
                       -0.147,-0.289, 0.436, 0.000,
                        0.615,-0.515,-0.100, 0.000,
                        0.000, 0.000, 0.000, 0.000
                   };
               return mul(coeffs,rgb);
           }

           float4 yuv2rgb(float4 yuv)
           {
               float4x4 coeffs=
                   {
                        1.000, 0.000, 1.140, 0.000,
                        1.000,-0.395,-0.581, 0.000,
                        1.000, 2.032, 0.000, 0.000,
                        0.000, 0.000, 0.000, 0.000
                   };
               return mul(coeffs,yuv);
           }

           float4 main(float2 tex : TEXCOORD0) : COLOR 
           {
               float dx=1/width;
               float dy=1/height;
               float4 yuv00=rgb2yuv(getPixel(tex,-dx,-dy));
               float4 yuv01=rgb2yuv(getPixel(tex,-dx,  0));
               float4 yuv02=rgb2yuv(getPixel(tex,-dx, dy));
               float4 yuv10=rgb2yuv(getPixel(tex,  0,-dy));
               float4 yuv11=rgb2yuv(getPixel(tex,  0,  0));
               float4 yuv12=rgb2yuv(getPixel(tex,  0, dy));
               float4 yuv20=rgb2yuv(getPixel(tex, dx,-dy));
               float4 yuv21=rgb2yuv(getPixel(tex, dx,  0));
               float4 yuv22=rgb2yuv(getPixel(tex, dx, dy));
               float4 yuv=(yuv00*1+yuv01*2+yuv02*1+yuv10*2+yuv11*4+yuv12*2+yuv20*1+yuv21*2+yuv22*1)/16;
               yuv.r=yuv11.r;
               float4 ori = yuv2rgb(yuv);
               float4 c1 = tex2D(s0, tex+float2(-bx,-by)); 
               float4 c2 = tex2D(s0, tex+float2(0,-by)); 
               float4 c3 = tex2D(s0, tex+float2(bx,-by)); 
               float4 c4 = tex2D(s0, tex+float2(-bx,0)); 
               float4 c5 = tex2D(s0, tex+float2(bx,0)); 
               float4 c6 = tex2D(s0, tex+float2(-bx,by)); 
               float4 c7 = tex2D(s0, tex+float2(0,by)); 
               float4 c8 = tex2D(s0, tex+float2(bx,by)); 
               float4 flou = (c1+c3+c6+c8+2*(c2+c4+c5+c7)+4*ori)*0.0625; 
               float4 cori = CoefOri*tex2D(s0, tex)-CoefFlou*flou; 
               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)); 
               float delta1 = (c3+2*c5+c8)-(c1+2*c4+c6);
               float delta2 = (c6+2*c7+c8)-(c1+2*c2+c3);
               if(sqrt(mul(delta1,delta1)+mul(delta2,delta2))>SharpenEdge)
                   {
                   return ori*Sharpen_val0-(c1+c2+c3+c4+c5+c6+c7+c8)*Sharpen_val1;
                   }
               else 
                   { 
                   return cori; 
                   } 
           }

       </Code>
   </Shader>

 

Für Verbesserungsvorschläge usw. bin ich natürlich jederzeit dankbar :bye:

Edited by Freezer
Link to comment
Hier mal mein erster Versuch die Shader "YV12 Chroma Upsampling" und "Sharpen Complex 2" zu vereinen.

Den Chroma Upsampler braucht man scheinbar nur für Radeon GPU's < HD 4000. Mit meiner HD 3650 ist das Chroma Upsampling jedenfalls nicht gut, sowohl mit EVR Custom in MPC-HC als auch im DVBViewer. Mit Standard EVR gibt es dieses Problem nicht. Sehr komisch, da in allen Fällen die NV12 Pipeline der Grafikkarte verwendet wird. Hier der Beleg für das schlechte Upsampling.

 

Shader auf diese Weise zu vereinen führt meist nicht zum gewünschten Ergebnis. Ein Shader wird pro Pixel aufgerufen. Verwendet ein Shader aber Nachbarpixel zur Berechnung des aktuellen Pixels ist das Ergebnis anders, je nachdem wie die Funktionen gestackt werden. Packt man 2 Funktionen in einen Shader, verwendet die 2. Funktion noch unbearbeitete Nachbarpixel. Packt man die 2 Funktionen in 2 unterschiedliche Shader, wird das komplette Bild erst von Shader 1, anschließend von Shader 2 bearbeitet. Shader 2 verwendet also nur noch Pixel, die bereits von Shader 1 bearbeitet wurden.

Verwenden beide Funktionen keine Nachbarpixel ist das natürlich kein Problem.

Link to comment

Ich verwende eine HD 5770 unter Win 7 mit EVR Custom und da besteht das Problem mit dem schlechten Chroma Upsampling auch.

 

Hier mal Screenshots davon:

 

post-52739-0-09077300-1293985655_thumb.png

 

 

 

Link to comment
  • 3 weeks later...

Muss man da angemeldet sein um die Shader runterladen zu können? Sehe nämlich nix ...

 

Aber mach dir da mal keine all zu großen Hoffnungen dass der DVBViewer in näherer Zukunft neuere Shader unterstützt, wenn noch nichtmal seit über einem dreiviertel Jahr bestehende Bugs diesbezüglich gefixed werden :unsure:

 

 

Link to comment
  • 5 months later...

Hi, vielleicht kann mir ja mal jemand helfen :) Ich wollte ein GLSL Shader für Lanczos schreiben, allerdings mag er das nicht kompilieren. Ich krieg das mit der Matrizen-Multiplikation einfach nicht wirklich hin:

 

sampler s0 : register(s0);
float4 p0 : register(c0);

#define width (p0[0])
#define height (p0[1])
#define PI acos(-1)

float4 weight4(float x)
{
float4 sample = round(PI * float4(1.0 + x, x, 1.0 - x, 2.0 - x));
float4 ret = 2.0 * sin(sample) * sin(sample / 2.0) / pow(sample, 2.0);
return ret / dot(ret, 1.0);
}

float3 pixel(float xpos, float ypos)
{
return tex2D(s0, float2(xpos, ypos));
}

float3 gline(float ypos, float4 xpos, float4 linetaps)
{
 return float4x3(
       pixel(xpos.x, ypos),
       pixel(xpos.y, ypos),
       pixel(xpos.z, ypos),
       pixel(xpos.w, ypos)) * linetaps;
}

float4 main(float2 tex : TEXCOORD0) : COLOR
{
 float2 stepxy = 1.0 / float2(width, height);
 float2 pos = tex.xy + stepxy * 0.5;
 float2 f = round(pos / stepxy);

float2 xystart = (-1.5 - f) * stepxy + pos;
float4 xpos = float4(
 xystart.x,
 xystart.x + stepxy.x,
 xystart.x + stepxy.x * 2.0,
 xystart.x + stepxy.x * 3.0);

float4 linetaps   = weight4(f.x);
float4 columntaps = weight4(f.y);

float4 color = float4x3(
 gline(xystart.y                 , xpos, linetaps),
 gline(xystart.y + stepxy.y      , xpos, linetaps),
 gline(xystart.y + stepxy.y * 2.0, xpos, linetaps),
 gline(xystart.y + stepxy.y * 3.0, xpos, linetaps)) * columntaps;
color.a = 1.0;
return color;
}

Link to comment

Hi, probier mal sowas:

return mul(float4x3(

pixel(xpos.x, ypos),

pixel(xpos.y, ypos),

pixel(xpos.z, ypos),

pixel(xpos.w, ypos)), linetaps);

 

Ansonsten bin ich mir nicht wirklich sicher ob das klappt :)

 

Christian

Link to comment

Wo kommt bei dem Lanczos-Versuch die Zielauflösung ins Spiel?

Müsste diese nicht im Shader selbst definiert werden?

Edited by nuts
Link to comment

Bezüglich Skalierung verfolge ich gerade einen anderen Ansatz...

 

Wenn der EVR Custom Allocator/Presenter beim Mixer einen Media-Type mit entsprechenden Parametern für Auflösung/PAR/Aperature setzt, macht selbiger die ganze Skalierung.

 

Beispiel:

 

Quelle: 720x576 mit PAR 64:45 (16:9 Anamorph)

Ziel: 1920x1080 mit PAR 1:1

 

Wenn man jetzt beim Mixer über SetOutputType die Zielparameter übergibt, sprich 1920x1080 für MF_MT_FRAME_SIZE und 1:1 für MF_MT_PIXEL_ASPECT_RATIO, sollte der Mixer die ganze Skalierung vornehmen. Der Allocator/Presenter muss dann natürlich auch entsprechend große Texturen bereitstellen.

 

Keine Ahnung, wie gut die Skalierwerkzeuge vom Mixer sind. Evtl. kann da auch was über DXVA getriggert werden? Ich nehme an, der Standard-EVR geht genau diesen Weg. Das letzte mal, als ich die Skalierung mit Standard-EVR unter die Lupe genommen habe, kam da nicht mehr als Bilinear heraus. Evtl. ist das mit aktuellen GPU's anders. Vielleicht bin ich da auch etwas auf dem Holzweg und die Skalierung sollte doch der Presenter machen...

Link to comment

Ich finde im Netz nur Informationen zu "nearest neighbor" und "bilinear" für den EVR Customrenderer.

Zusätzlich gibt es die Option in MPC-HC den bikubischen Shader einzubinden.

 

Der "ScalerShader" setzt vor dem Mixer ein und daher müsste man wissen welche Zielauflösung gewünscht ist.

Das kann doch eigentlich nur die Hauptanwendung übernehmen?

Link to comment

Naja ich denke nicht das das notwendig ist, wenn man die Auflösung von seinem Display kennt und im D3D Exklusivmodus betreibt. Da reicht die Angabe der Breite/Höhe von der Zieltextur eigentlich aus.

Link to comment

Ich hab mal im MPC-HC Code gewühlt.

Viel verstanden habe ich nicht, aber die betreffende Stelle für den ScalingShader sollte hier drin sein:

http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/branches/renderer_fixes/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp?revision=3063&view=markup

 

Videoauflösung und Zielauflösung wird nach meinem geringen C++ Verständnis als Shaderkonstante geliefert.

Der DVBViewer liefert ja selbst auch ein paar Daten:

Über das Register c0 bekommst du ein paar Informationen vom DVBViewer:

 

#define width (p0[0])

#define height (p0[1])

#define counter (p0[2])

#define clock (p0[3])

#define one_over_width (p1[0])

#define one_over_height (p1[1])

 

Width und Height sind die Größen der Textur, One_Over_Width ist 1/Width bzw. Height ist 1/Height. Das brauchten ein paar Shader und um Rechenzeit zu sparen wird das von der Anwendung übergeben. Der Counter erhöht sich stetig, ebenso wie die Uhr.

 

Für die Spielereien mit dem Lanczos-Shader ist das aber erstmal egal. :)

Weiss jemand wo der bikubische Shader von mpc-hc zu finden ist?

Edited by nuts
Link to comment

Du meinst der hier?

 

#define Magnify (4/3.)

sampler s0;
float2 c0;
float2 c1;
#define sp(a,  float4 a = tex2D(s0, float2(tex.x, coord+b*c1.y));

float4 main(float2 tex : TEXCOORD0) : COLOR
{
float coord = (tex.y/Magnify+.5-.5/Magnify)*c0.y;// assign the output position, normalized to texture height in pixels
float t = frac(coord);// calculate the difference between the output pixel and the original surrounding two pixels
coord = (coord-t+.5)*c1.y;// adjust sampling matrix to put the ouput pixel in the interval [Q1, Q2)

sp(Q0, -1) sp(Q1, 0) sp(Q2, 1) sp(Q3, 2)// original pixels
return ((((Q1-Q2+(Q3-Q0)/3.)*t+Q0+Q2-Q1*2)*t+Q2-Q0)*t*3+Q0+Q1*4+Q2)/6.;// interpolation output
}

 

alternativ hab ich noch den hier:

 

// (C) 2011 Jan-Willem Krans (janwillem32 <at> hotmail.com)
// This file is part of Video pixel shader pack.
// This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

// Perlin Smootherstep2×2 resizer
// This shader should be run as a screen space pixel shader if you are up-scaling.
// This shader should not be run as a screen space pixel shader if you are down-scaling.
// This shader requires compiling with ps_2_0, but higher is better, see http://en.wikipedia.org/wiki/Pixel_shader to look up what PS version your video card supports.
// If possible, avoid compiling with the software emulation modes (ps_?_sw). Pixel shaders require a lot of processing power to run in real-time software mode.
// This shader is meant to work with linear RGB input and output. Regular R'G'B' with a video gamma encoding will have to be converted with the linear gamma shaders to work properly.
// Use this shader to scale an image by Perlin Smootherstep2×2 interpolation.

// fractions, either decimal or not, are allowed
// set the magnification factor
#define Magnify (4/3.)

sampler s0;
float2 c0;
float2 c1;
#define sp(a, b, c) float4 a = tex2D(s0, tex+c1*float2(b, c));

float4 main(float2 tex : TEXCOORD0) : COLOR
{
tex = (tex/Magnify+.5-.5/Magnify)*c0;// normalize to texture width in pixels
float2 t = frac(tex);// calculate the difference between the output pixel and the original surrounding two pixels
tex = (tex-t+.5)*c1;// adjust sampling matrix to put the ouput pixel in the interval [Q0, Q1)
// weights
float2 w1 = ((6*t-15.)*t+10.)*pow(t, 3);
float2 w0 = 1.-w1;

// original pixels
sp(M0, 0, 0) sp(M1, 0, 1)
sp(L0, 1, 0) sp(L1, 1, 1)

// vertical interpolation
float4 Q0 = M0*w0.y+M1*w1.y;
float4 Q1 = L0*w0.y+L1*w1.y;
return Q0*w0.x+Q1*w1.x;// horizontal interpolation and output
}

Link to comment

Im Register C1 müsste die Zielauflösung zu finden sein?

Diese müsste für den DVBV im Shader selbst hinterlegt werden?

Etwas blöd wenn man den Syntax nicht kennt :(

 

Float2 C1 (1920, 1080)

:wacko:

Edited by nuts
Link to comment

Infos zur Zielauflösung werden derzeit aber nicht übergeben oder?

Demnach müsste für die Spielereien mit den Resize-Shadern eben selbst mal was eingetragen werden.

 

 

P.S. Du sagst uns das aber schon wenn das eh zu nichts führen kann oder? :D

Link to comment
P.S. Du sagst uns das aber schon wenn das eh zu nichts führen kann oder? :D

Ich muss mir das erst im Detail anschauen. Ich glaube, das läuft etwas anders ;) . Bei den in MPC-HC integrierten Resize-Shadern wird die Quellauflösung übergeben. Das Ziel wird irgendwie über Vertizes festgelegt. Den entsprechenden Code findet man hier.

Jan-Willem's Shader arbeiten als Screenspace-Shader (d.h. man kann es wohl auch anders machen, was mit dem jetzigen DVBViewer aber auch nicht funktionieren wird) bzw. sind in seinen eigenen Builds auch als Resize-Shader integriert. Überzeugt haben mich diese Resizer bisher noch nicht.

Link to comment

Den sourcecode hab ich mir auch schon angesehen:

	float fConstData[][4] = {
		{(float)desc.Width, (float)desc.Height, (float)(counter++), (float)diff / CLOCKS_PER_SEC},
		{1.0f / desc.Width, 1.0f / desc.Height, 0, 0},
	};
#else
	CSize VideoSize = GetVisibleVideoSize();

	float fConstData[][4] = {
		{(float)VideoSize.cx, (float)VideoSize.cy, (float)(counter++), (float)diff / CLOCKS_PER_SEC},
		{1.0f / VideoSize.cx, 1.0f / VideoSize.cy, 0, 0},
	};
#endif

	hr = m_pD3DDev->SetPixelShaderConstantF(0, (float*)fConstData, countof(fConstData));

 

Und daraus geschlossen, dass die Zielauflösung mit übergeben wird.

Edited by nuts
Link to comment

Bei dem von dir zitierten Code wird aber der erste IF-Zweig kompiliert. Da wird die Textur-Auflösung genommen, und das ist an dieser Stelle die Quellauflösung. Außerdem sind das die Konstanten für die "User-Shader" vor dem Resizer. Konstanten für die Resize-Shader findet man zum Beispiel in der Methode 'TextureResizeBicubic1pass'.

Link to comment

Hey Leute,

 

ich verfolge diesen Thread als Bildqualitätsliebhaber mit großem Interesse. Verstehe ich das richtig, dass man möglicherweise einen Lanczos-Shader im DVBViewer dazu benutzen könnte, das Upscalen zu bewerkstelligen, anstatt dies dem EVR-Renderer zu überlassen? MPC-HC bietet doch anscheinend diese Möglichkeit, was die Machbarkeit eigentlich demonstriert.

 

Alternativ frage ich mich, warum der DVBViewer die Modularität von DirectShow nicht noch besser ausnutzt, so dass auch andere Renderer verwendet werden könnten (z.B. MadVR). Oder habe ich hier einen Denkfehler?

 

Viele Grüße, Wolpers

Link to comment
das Upscalen zu bewerkstelligen, anstatt dies dem EVR-Renderer zu überlassen?

Das macht genau genommen nicht der EVR, sondern die Standard D3D MAG/MIN Filter.

 

Oder habe ich hier einen Denkfehler?

Ja, Renderer stehen in enger Wechselwirkung mit der Applikation.

Link to comment

Verstehe ich das richtig, dass man möglicherweise einen Lanczos-Shader im DVBViewer dazu benutzen könnte, das Upscalen zu bewerkstelligen, anstatt dies dem EVR-Renderer zu überlassen? MPC-HC bietet doch anscheinend diese Möglichkeit, was die Machbarkeit eigentlich demonstriert.

Theoretisch schon.

Mir gelingt das aber irgendwie nicht die Zielauflösung in den Shader zu bekommen (mangels HLSL Kenntnissen). :(

Ich reite auf der Zielaufösung so rum, da man ohne nach meinem Verständnis kein upscaling machen kann.

Link to comment

Ich werde mich wie gesagt im Detail damit beschäftigen.

 

Ich bin aktuell noch dran, bessere Debug- und Analyse-Möglichkeiten zu schaffen und den Presenter bzw. Frame-Scheduler an den VSync zu binden.

 

debug.jpg

 

Ich wünsche mir ein optimales Timing, unabhängig von Grafikeinheit/Treiber, Aero/DWM usw.

Link to comment
  • 8 months later...

Hallo,

 

alle paar Monate, wenn ich mal wieder zufällig eine Aufnahme mit VLC abgespiele, staune ich über die Schärfe. Daraufhin schaue ich dann immer hier in diesen Thread. :biggrin:

 

Könnt Ihr mir vielleicht sagen, ob es Neuigkeiten gibt?

 

Schöne Grüße,

rs

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...