Suche zwei Funktionen

  • Hat Momonster zwei Postings weiter oben erwähnt ( http://forum.gleitz.info/showpost.php?p=271970&postcount=19 ) und ich habe darunter was dazu geschrieben was die vorherige Version betrifft. Diese jetzige Version habe ich noch nicht getestet. ;)

    Was auch sehr interessant ist, sind dort die Links zur Programmiersprache "D". :)
    http://www.digitalmars.com/d/

  • Zitat von incredible

    Was auch sehr interessant ist, sind dort die Links zur Programmiersprache "D". :)
    http://www.digitalmars.com/d/


    Ja, das ist mir auch gleich ins Auge gefallen. Solange es keine Standardisierung gibt ist das aber wohl noch nicht so interessant.

    Zitat von incredible

    Daher scheint jeder xte genommene Frame im jeweiligen Pattern-Abschnitt genau der zu sein, welcher im "kontinuierlichen" Pattern immer progressiv daherkommt. .... sollte nich genau das der 17ner deci verhindern?


    Ja, das 17ner deci sollte das eigentlich verhindern, wenn die 17 jetzt aber mal ein Vielfaches von fünf genommen wird, hat man von der 17 nichts mehr.

    Zur Funktion:
    Aus amount und every wird emount. Wird emount unter 100 gesetzt arbeitet es wie every, ansonsten wird mit den Werten die Anzahl der zu untersuchenden Frames angegeben. Ob nun unter oder uber hundert, der angegebene bzw. resultierende Dezimierungsfaktor wird so angepasst, dass er nicht mehr durch 2, 3 oder 5 teilbar ist. Dadurch ist emount zwar immer nur eine grobe Annährung an die tatsächlichen Gegebenheiten, dafür treten die oben genannten Patternprobleme nicht mehr auf. Achja, emount (default:300) wird immer an die vorgegebene Länge (end) angepasst.

    Und wegen vfw: Ich möchte einen Codec programmieren (zunächst lossless). Ich bin gerade dabei den Code erstmal mit selbserstellten log Files zu testen, aber habe jetzt auch genug Informationen um als nächstes den Code mit einer BMP zu testen. Am hilfreichsten waren bis jetzt Quellcodes von anderen C-Codecs. Aber es wird wohl noch etwas Zeit in Anspruch nehmen.

  • OFFTOPIC: Weder Wavelet noch DCT. Es gibt genügend und zudem auch sehr gute Implementierungen davon. Ich glaube nicht, dass ich da irgendetwas besser machen würde. Fractal war noch eine Überlegung, aber vorerst viel zu komplex für mich als Anfänger. Die verlustbehaftete Version wird linearadaptiv arbeiten und basiert auf keiner mir bekannten Komprimierungsgrundlage, was eben genau der Anlass für mich ist, diesen Versuch zu starten. Zu gegebener Zeit mache ich einen Thread dazu auf, aber vorher muss sich der Code noch als brauchbar erweisen.

  • Hey super, dann ist heute Abend testen angesagt.
    Nur ....

    Zitat

    wenn die 17 jetzt aber mal ein Vielfaches von fünf genommen wird, hat man von der 17 nichts mehr.

    ... aber bei deiner ersten "deci" version wäre sodann auch irgendwann mal ein 15ter Durchlauf eines 17ten Frames via SelectEvery(deci,0) stattgefunden.
    Aber wie auch immer, dass Teil wird immer besser :) Danke

    Bzgl. Codec: Interessant wäre auch ein Versuch den LZW Algorhythmus bei Videostreams anwenden zu können. Diesen nutze ich hier im Job immer in Photoshop. Weiss aber nicht ob z.B. Huffy da sogar besser abschneidet UND ob LZW mit YUV alignments klar kommt.

  • incredible
    Zur besseren Vorstellung nehme ich mal einfach immer den modulo5 Wert des jeweiligen Vielfachen von 17:
    1. (17*1)%5=2
    2. (17*2)%5=4
    3. (17*3)%5=1
    4. (17*4)%5=3
    5. (17*5)%5=0
    6. (17*6)%5=2
    ...
    Wenn multi jetzt ein Vielfaches von 5 ist (Beispiel 10):
    1. (17*10*1)%5=0
    2. (17*10*2)%5=0
    3. (17*10*3)%5=0
    4. (17*10*4)%5=0
    5. (17*10*5)%5=0
    6. (17*10*6)%5=0

    Daraus resultiert das vorher besprochene Patternproblem.

    Nochmal zum Codec: Bei dem Codec geht es darum meine eigene Idee umzusetzen und diese hat glaub ich sehr wenig mit LZW gemeinsam und lässt auch nicht so gut damit kombinieren (weiß im Moment aber auch nicht viel darüber).

  • MOmonster, ich hab da ein kleines Problem.
    ___

    Anmerkungen vorweg:
    * Man sollte erwähnen, dass die TIVTC.dll (von tritical) mit geladen muss. :D
    * Könntest du eine Überprüfung einbauen, damit das Startframe nicht kleiner 0 sein kann. (Ich weiß das es keine negativen Frames gibt. Als ich jedoch nach trim()-Notation, also mit Null beginnend, das Skript laufen ließ, "drehte es irgendwie durch". Schlecht zu beschreiben.)
    ___

    Ich hab versucht dein Script als externes "Interlacing2Reader.avs" über die OVA 2 von Lupin the 3rd laufen zu lassen. Eigentlich über den gesamten Film (132.438 Frames). Nur hat er das irgendwie nicht gemocht. :redface: Also hab ich den Auschnitt auf 500 begrenzt (beginnend bei 1).
    Das Skript hab ich mit dem MPC abgespielt, 60min lang. Auf dem genutzten CPU-Kern gab es eine Prozessorauslastung von ~90% und 500MB Speichernutzung.

    Ergebnis:
    CurrFrame: 164
    interlaced: 6855 (real: 3077)
    progressive: 4914
    fieldshifted: 3245
    ttf: 14750
    bff: 0

    Wie gesagt, er lief, und lief und lief ... 60 min lang, dann hab ich abgebrochen. (hat leider auch kein Logfile geschrieben). Frage: Hört der auch mal auf?
    Ist es möglich eine "Restanzeige" (Lauf x von y) einzublenden?

    Ich versuch mal das Ergebnis anhand dessen was du hier gesagt hast zu interpretieren:

    6855 (i) + 4914 (p) + 3245 (fs) = 15014 (summe)

    Interlaced?: 3077 (real_i) / 15014 (summe) = 0,205 < 0,70 (i) ==> nicht Interlaced

    NTSC pulldown?: 3245 (fs) / 4914 (p) = 0,66 ==> NTSC pulldown (fieldshiefted liegt zw. 33% und 66% von progressiv)

    Progressiv?: 4914 (p) / 15014 (summe) = 0,33 < 0,95 (p) ==> nicht progressiv

    Wenn es stimmt was ich da gerechnet habe, dann ist die OVA 2 "NTSC Pulldown" (und ich hab schon wieder versucht TDeint auf sowas anzuwenden). :wall:

  • Naito
    Könntest du bitte mal das gesamte Skript posten. Currframe 164 aber bei der Erkennung sind viel mehr herangezogen worden. Da muss in der tat irgendetwas falsch gelaufen sein. Stecke gerade nicht in der Materie, weil ich an Mrestore und moderate_ee arbeite, aber wenn du das Skript postest werfe ich mal ein Blick drauf.
    Die Werte sehen übrigens nach einer Normwandlung aus. Bei NTSC Pulldown werden nur fieldshifted und progressiv erkannt aber keine interlaced fields (bzw verschwindet wenig).

  • Mein Skript sieht so aus:

    Code
    LoadPlugin("I:\Programme\DGMPGDec\DGDecode.dll")
    LoadPlugin("I:\Programme\AviSynth\filter\TIVTC.dll")
    Import("I:\Programme\AviSynth\filter\Interlacing2Reader.avs")
    
    
    MPEG2Source("H:\Lupin\OVA 2\OVA 2.d2v", cpu=0)
    
    
    Interlacing2Reader(start=1, end=500, file="H:\500.txt")


    Im Anhang findest du nochmal die "Interlacing2Reader.avs", falls was beim Copy&Paste schief gegangen sein sollte. Geändert habe ich aber nur "output = default(file,"C:\interlacing.log")" zu "output = default(file,"H:\interlacing.log")".

    Currframe 164 aber bei der Erkennung sind viel mehr herangezogen worden. Da muss in der tat irgendetwas falsch gelaufen sein.


    Das ich "Currframe 164" geschrieben habe liegt daran, dass das Skript ja immer von von nach hinten durchläuft. Abgeschrieben habe ich die Werte, als er wieder ganz am Anfang war. Die höchste Framezahl die unter "Currframe" stand war (wenn ich mich recht erinnere) irgendwas bei 31xx.

    Stecke gerade nicht in der Materie, weil ich an Mrestore und moderate_ee arbeite, aber wenn du das Skript postest werfe ich mal ein Blick drauf.


    Weiß ich, ich will deswegen auch nicht drängeln. Aber ich wollt die Funktion unbedingt mal ausprobieren. (Ich hab leider immer noch nicht den Durchblick, bei den ganzen Wandlungsmethoden; geschweige denn, wie ich erkenne was es ist.)

    Die Werte sehen übrigens nach einer Normwandlung aus. Bei NTSC Pulldown werden nur fieldshifted und progressiv erkannt aber keine interlaced fields (bzw verschwindet wenig).


    Danke für den Tipp, werd schaun was ich tun kann.

  • So ich hab mich gestern mal an die Funktion gesetzt. Lief wirklich sehr instabil, was aber auch mit den letzten TIVTC Versionen zu tun hatte (rc7-rc9). Also unbedingt die neuste Version verwenden.
    Ich habe den Code überarbeitet, ein paar Dinge verbessert und neu strukturiert. Sollte TIVTC nicht stabil laufen, kann man jetzt zum Beispiel auch auf Decomb zurueckgreifen.
    Ich habe die letzte Version hier integriert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!