Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Mathematik ?

  1. #1
    Routinier Avatar von TheGenesis
    Registriert seit
    9. May 2006
    Alter
    47
    Beiträge
    337

    Icon12 Mathematik ?

    Hallo zusammen,

    ich schreibe gerade VLC um und habe dabei schmerzhaft erfahren müssen, das die lustigen Graphen von damals im Matheunterricht später doch noch für irgendwas gut gewesen sein müssen

    Leider ist das bereits alles aus meinem Schädel, weil man "sowas ja nie wieder braucht".

    Konkret bin ich auf der Suche nach einer Formel um bei einem komprimierten Frame mit gegebenem Lambda+Größe, eine Größe aus einem beliebigem Lambda zu berechnen.

    Dazu hab ich zunächst ein paar Durchläufe mit einer Testsequenz gemacht und mir sämtliche Größen ausgeben lassen.

    Das ganze hab ich dann unter Access mit ein paar Repräsentativen Frames in eine Exceltabelle gepumpt um mir einen hübschen Responsegraph zu erstellen.

    Dann hab ich angefangen eine Funktion zu basteln, die mir die Beispielwerte berechnet.

    Das hat ganz gut geklappt, ist aber nicht genau, weil ich im Unterricht beim Thema "Kurvendiskussion" wohl gepennt habe ... oder es ist einfach zu lange her

    So wie ich das sehe, muss die Funktion so angepasst werden, das vor dem Nulldurchgang die Degression höher und nach dem Durchgang niedriger sein muss.

    Das erklärt dann zwar nicht die Punkte bei GP <0 aber dann hätt ich erstmal 'ne Basis zum weitermachen.

    Hier ist die Exceltabelle:

    ... neue Version weiter unten ...

    Die gesuchte Funktion ist in der Spalte [G] und um die Sache zu testen könnt ihr rechts den "Complexity Modifier" auf die jeweiligen Verhältnisse von Small/Medium/Large einstellen.
    Bei "Large" kann man schön sehen, wie sich die Fehler potenzieren.

    Wenn in der Spalte "error" überall 0% stehen würde, wäre ich überglücklich ... sehr nahe dran würde mir aber schon genügen.

    Die Idee zu der Formel hab ich übrigens aus dem Beitrag, der oben in der Exceltabelle steht ... aber wie gesagt ... irgendwas fehlt noch.

    Jemand 'ne Idee?

    P.S. Die leeren Zeilen zwischen den Markierungen könnt ihr erstmal ignorieren ... das sprengt jetzt wohl den Rahmen
    Geändert von TheGenesis (5. December 2013 um 02:42 Uhr)

  2. #2
    . Avatar von Selur
    Registriert seit
    19. April 2003
    Ort
    underground
    Beiträge
    24.750

    Standard AW: Mathematik ?

    Mal gucken.
    Du hast einen Stapel Messdaten (Spalten A-D)
    berechnest Dir dann
    - QP als Quality/118 -0,5 (Macht das Sinn? negative QP-Werte ??)
    - Factor dadurch, dass Du den Wert in der C-Spalte (2 Medium) durch den Wert in C5 teilst. (vermutlich weil das der Encode mit QP 0 ist, was vermutlich wiederum lossless ist; wobei sich FF_QP2LAMDA auf den lambda Wert von Q2 beruft,...)

    Was Du jetzt willst ist eine Formel, welche dir zu einem gegebenen QP-Wert und dem Complecity Modifier den factor (Spalte G) berechnet. (wobei CM = 1 ist)

    Dein aktueller Ansatz dafür ist:

    factor = 2^(-QPWert/(2+ComplexityModifier)) * 2 + ComplexityModifier = 2 ^ (1 - QP/()2+CM) + CM

    Sehe ich das soweit richtig?

    Cu Selur

    Mal so etwas wie: Eureqa (https://www.nutonian.com/products/eureqa/quick-start/) ausprobiert?
    Geändert von Selur (2. December 2013 um 15:55 Uhr)

  3. #3
    Routinier Avatar von TheGenesis
    Registriert seit
    9. May 2006
    Alter
    47
    Beiträge
    337

    Standard AW: Mathematik ?

    Zitat Zitat von Selur Beitrag anzeigen
    QP als Quality/118 -0,5 (Macht das Sinn? negative QP-Werte ??)
    Ups ... da is schon der erste Fehler in der Formel ... hatte das schnell aus dem Source vom encoder kopiert und da das "optisch" dem Medium-Frame am nächsten kam, hab ichs gelassen.

    Zitat Zitat von Selur Beitrag anzeigen
    Was Du jetzt willst ist eine Formel, welche dir zu einem gegebenen QP-Wert und dem Complecity Modifier den factor (Spalte G) berechnet. (wobei CM = 1 ist)
    Ja ... und umgekehrt

    Zitat Zitat von Selur Beitrag anzeigen
    Dein aktueller Ansatz dafür ist:

    factor = 2^(-QPWert/(2+ComplexityModifier)) * 2 + ComplexityModifier = 2 ^ (1 - QP/()2+CM) + CM
    Fasst ... es heißt dort:

    factor = 2^(-QPWert/(2+ComplexityModifier)) * ComplexityModifier

    Zitat Zitat von Selur Beitrag anzeigen
    Mal so etwas wie: Eureqa (https://www.nutonian.com/products/eureqa/quick-start/) ausprobiert?
    Noch nicht ... grins ... wusste garnicht das es sowas gibt ... ich probiers mal aus ... aber dann weiss ich trotzdem nicht, wie man sowas "austüftelt".

    So ... hab die Exceltabelle erstmal um die 0,5 bereinigt ... man sollte nicht solange an sowas fummeln, wenn man müde ist

    hier ist der Update:

    QP bFrames.zip

    Mhmm ... sind das mehrere Kurven und kann man das überhaupt mit einer Formel darstellen?
    Geändert von TheGenesis (2. December 2013 um 23:53 Uhr)

  4. #4
    Routinier Avatar von TheGenesis
    Registriert seit
    9. May 2006
    Alter
    47
    Beiträge
    337

    Standard AW: Mathematik ?

    Mein Gott ... das Tool ist echt der Hammer ... haha ... macht die Schule echt überflüssig ... ich sach nur "Dont feed the trolls"

  5. #5
    . Avatar von Selur
    Registriert seit
    19. April 2003
    Ort
    underground
    Beiträge
    24.750

    Standard AW: Mathematik ?

    Mein Gott ... das Tool ist echt der Hammer ... haha ... macht die Schule echt überflüssig ... ich sach nur "Dont feed the trolls"
    Ist zumindest praktisch um brauchbare Näherungslösungen zu finden.

    aber dann weiss ich trotzdem nicht, wie man sowas "austüftelt".
    bei einer Korrelatuin zwischen nur zwei Zahlen -> scharfes draufgucken

    ----

    Ist QP wirklich der einzige Faktor den Du hast?
    Das Problem ist, dass ich aktuell bezweifele, dass man eine direkte Korrelation zwischen QP und dem Factor finden wird, welche wirklich genau ist.
    -> Wie nah sollte/muss denn die Schätzung der Werte sein?
    Nebenbei:
    Da es eh 'nur' um eine Korrelation zwischen QP und Factor geht, wäre es einfacher den Orginal Factor direkt mit dem errechneten Factor zu vergleichen im Graphen?

  6. #6
    Routinier Avatar von TheGenesis
    Registriert seit
    9. May 2006
    Alter
    47
    Beiträge
    337

    Standard AW: Mathematik ?

    Ja, das hatte ich letzte Nacht schon angeworfen ... die Berechnung läuft noch und nähert sich wohl dem ende.

    Huaahh ... vorläufiges "Endergebnis":

    Code:
    C = atan2(log(B*A^3 + B^2/A) + max((A^2 - B)/(A + B + A*asinh(B^2/sqrt(A))), atan2(sqrt(A), asinh(acosh(B)*max(B^2, B*A^3)))), A)
    A=QP, B=Size, C=Factor

    Wie soll ich das denn dem armen alten Excel von 2003 beibringen?

    Das ist übrigens auch nur der erste Schritt ... später brauche ich dann auch noch die Korrelation zwischen FrameX und FrameY (complexity).

    Genau hinschauen wird wohl eher eine "praktikable" Formel bringen, denn so wie ich das sehe, sind das 2 kurven, nämlich:

    entweder:

    a) parabel von lambda 1 bis 177
    b) hyperbel von lambda 295 bis ende

    oder:

    a) parabel von lambda 1 bis 59
    b) hyperbel von lambda 177 bis ende

    und dann natürlich noch die kurven zwischen den Intervallen.

    Aber ich weiss nicht, wie man die kurven an die werte ausrichtet, geschweige denn innerhalb der Formeln parameterisiert ... man müsste dann nämlich für die große hyperbel in abhängigkeit der complexity unterschiedliche Steigungen/Gefälle vor und hinter dem 0-Punkt einsetzen.

  7. #7
    Routinier Avatar von TheGenesis
    Registriert seit
    9. May 2006
    Alter
    47
    Beiträge
    337

    Standard AW: Mathematik ?

    Nachtrag ... die Korrelation zwischen den Frames ist wurscht ... wenn der Faktor pro Frame jeweils korrekt ermittelt wird, kann ich auf die Größe von Lamda=1 hochrechnen und diese durch die Größe beim folgenden Frames teilen ... schwupps ... = complexity factor.

    Hochrechnen vom aktuellen auf das nächste muß ich nicht, weil ich in meinem Algo lediglich den trend zum vorangehenden Frame brauche.

    Hab gerade mal die folgende Formel auf mein Excelsheet angewandt:

    Code:
    0,5% absolute error ... cost 53
    
    C=atan2(log(A )/A  + A ^2/(B  + A *log(B  + B ^2) - A ) + log(B *A ^3 + B ^2/A ), A )
    
    ... für Excel:
    
    ARCTAN2(log(E2)/E2 + E2^2/(D2 + E2*log(D2 + D2^2) - E2) + log(D2*E2^3 + D2^2/E2); E2)
    Aber der MS haufen spuckt alle möglichen Zahlen über 1 aus die nix mit dem Faktor zutun haben.
    Im Evalutionsplot in Eureqa funktioniert das übrigens recht gut ... wo ist der Fehler?

    Achso ... nochwas ... wie schwierig ist das, so eine Formel wie da oben so um zu formen, das ich daraus die Gleichungen für A= und B= ableiten kann oder sollte ich da lieber Eureqa mit der entsprechenden/umgestellten Fragestellung bemühen?
    Geändert von TheGenesis (5. December 2013 um 03:04 Uhr)

  8. #8
    Erklär-Bär Avatar von LigH
    Registriert seit
    19. April 2003
    Ort
    OPAL-Invalidengebiet Altmark
    Alter
    42
    Beiträge
    42.555

    Standard AW: Mathematik ?

    Ich finde diese Formel deutlich zu komplex. Vermutlich wird es eine einfachere Formel geben, die vielleicht etwas größere Abweichung zu den Messdaten hat, dafür aber leichter zu berechnen ist und möglicherweise auch näher an der "Ursache" ist. Kann man in Eureqa die erlaubte Komplexität verringern, vielleicht sich nur auf polynomiale oder trigonometrische Annäherungen mit wenigen Termen beschränken?

    Auf gute Zusammenarbeit:

    REGELN befolgen | SUCHE benutzen | FAQ lesen | STICKIES beachten




  9. #9
    . Avatar von Selur
    Registriert seit
    19. April 2003
    Ort
    underground
    Beiträge
    24.750

    Standard AW: Mathematik ?

    Kann man in Eureqa die erlaubte Komplexität verringern, vielleicht sich nur auf polynomiale oder trigonometrische Annäherungen mit wenigen Termen beschränken?
    Ja, man kann angeben was für Komponenten es verwenden darf. (sin, cos, usw. hätte ich weggelassen)

    Praktikable Formel erhält man i.d.R. nur wenn man mehr über das was man betrachtet weiß.
    Wenn die Korrelation zwischen zwei Zahlen gefunden werden soll wird das Ergebnis oft nicht trivial sein, vor allem wenn man nicht weiß, was in den Daten Ausreißer sind und was nicht,..


    Nur mal zum Verständnis:
    QP steht wohl für einen konstanten Quantizer mit dem jeder Block des Frames komprimiert wurde. (also kein adaptive Quantization oder dergleichen)
    Aber, wofür soll der 'Factor' eigentlich anschaulich stehen?

    Cu Selur

  10. #10
    Routinier Avatar von TheGenesis
    Registriert seit
    9. May 2006
    Alter
    47
    Beiträge
    337

    Standard AW: Mathematik ?

    Factor soll das Verhältnis zur Framesize bei Lambda=1 sein.

    Dann kann ich innerhalb des Frames lustig jeden anderen Lamdba nach meiner "Wunschgröße" wählen.

    Und ich kann die "maximale" Größe der niedrigsten Komprimierungsstufe mit dem nächsten Frame vergleichen um eine Tendenz zur komplexität zu bekommen und somit vorraussagen zu können, ob die nächsten Frames eher simpler oder komplexer werden.

    Ich verpasse VLC u.a. einen ordentlichen Rate-Limiter und mit meinem ersten (linearen) Ansatz ist das zu ungenau.

    Wieso hättest du die Winkelfunktionen weggelassen ... das müsste doch gerade damit eine simple Formel ergeben ... die Base-QP's sehen doch alle aus, als würden sie auf einer symmetrischen "Welle" liegen ... oder bin ich jetzt blind?

    Zitat Zitat von LigH Beitrag anzeigen
    Ich finde diese Formel deutlich zu komplex...
    Uahh ... die bisher genaueste Formel ist viel komlexer:

    Code:
    C = B*erf(exp(asinh(logistic(A))))*gauss(exp(tanh(A)) + gauss(atanh(logistic(gauss(exp(logistic(A)) + erf(tanh(sqrt(exp(asinh(logistic(A)))))))))))
    Zitat Zitat von LigH Beitrag anzeigen
    Vermutlich wird es eine einfachere Formel geben, die vielleicht etwas größere Abweichung zu den Messdaten hat...
    Größere Abweichungen kann ich bei so kleinen Faktoren nicht gebrauchen ... die Produkte gehen dann direkt in die tausende.

    Mhmm ... auch wenn ich nicht ganz verstehe was Eureqa da treibt, kann ich jedoch leider erkennen, das er dabei ist den GP zu egalisieren und deshalb hab ich das Ding jetzt erstmal angehalten ... nützt mir nicht allzuviel, wenn das nachher nur mit diesem einen Frame funktioniert.

    Hab jetzt spaßeshalber mal alle 3 Frames gefüttert ... sieht nicht sehr vielversprechend aus ... er versucht seit 30 Minuten immernoch einen Median durch die 3 Kurven zu ziehen ... grrr ... hat doch grenzen so eine "Künstliche Intelligenz".
    Geändert von TheGenesis (6. December 2013 um 00:35 Uhr)

Seite 1 von 2 12 LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •