MPEG-4 weiterentwickelt?

  • Zitat von Selur

    DJ oSSi: wenn Du gelsen hättest was ich da gelinkt habe, dann wüssteste was in h264 geplant/möglich ist udn inwieweit, deine Idee 'neu' ist.

    Außerdem sollteste mal generell nachlesen was in den einzelnen, zum großen Teil noch nicht implementierten Mpeg4 Videoprofiles möglich/geplant ist.

    Cu Selur

    tut mir leid das ich mir keine englischen kompendien reinziehe
    die so dick sind das man sie als mordwaffe benutzen kann (wenns als papier gäbe)...

    im moment mache ich mir mehr gedanken darüber wann genau
    DCT (discrete cosinus transform) und wann genau
    DWT (discrete wavelet transform) seine vorteile hat und
    ob es sinnvoll wäre dies zu kombinieren und wenn es so wäre
    wie der encoder arbeiten muesste um fall fuer fall sich fuer die bessere
    methode zu entscheiden...
    mir geistert derzeit eine art Moving Object Peeler
    und Object Surface Splitter durch den Kopf..
    sodass der stream in mehrere objektebenen zertrennt wird
    und so zum beispiel in einem idealfall sogar besser als das
    original werden kann...

    beispiel:
    szene... mann steht 5 m vor der kamera... gesicht ist weichgezeichnet
    szene... mann steht 1 dm vor der kamera... gesicht ist hochdetailiert
    zwischen den beiden szenen wird ein bezug erkannt (ZOOM)
    die detaildaten der zweiten szene werden zur qualitätsverbesserung
    der ersten szene herangezogen....
    endeffekt:
    erste szene ist qualitativ besser als die original-erst-szene...
    UND
    verbraucht sogesehen nur minimale bezugsdaten zur zweiten szene

    ich will mich mal auf die suche machen wie eigentlich genau
    programme arbeiten die aus mehreren 2d-bildern 3d-objekte
    generieren können.... sodass zum beispiel ein drehen des kopfes
    (um beim beispiel mit dem mann zu bleiben) kein verlust
    zum bezugssystem (textur eines 3d-modells) verursacht wird..

    ich möchte mein arsch verwetten das sowas nicht in mpeg-4 drin ist..
    genauso wie den nachfolger von DCT und DWT...
    kann sein das man es DFT nennen wird....
    discrete fractal transform....

    *******ALIENBRAINSTORM******** :D

  • Zitat

    mir geistert derzeit eine art Moving Object Peeler
    und Object Surface Splitter durch den Kopf..
    sodass der stream in mehrere objektebenen zertrennt wird
    und so zum beispiel in einem idealfall sogar besser als das
    original werden kann...

    Zitat

    ich möchte mein arsch verwetten das sowas nicht in mpeg-4 drin ist..


    => SpriteCoding, was in Mpeg4 schon lange vorgesehen ist,...
    (aber was will man mit Deinem Hintern?)

    Die Diskussion ist meiner Ansicht nach hinfällig, sollange Du Dir nicht mal die Sachen durchgelesen hast die in Mpeg4&AVC/h.264 geplant sind.

    Zitat

    tut mir leid das ich mir keine englischen kompendien reinziehe
    die so dick sind das man sie als mordwaffe benutzen kann (wenns als papier gäbe)...


    Muss Dir ja nicht leid tun, dass Dein Interesse am Thema so niedrig ist. Aber Dokumentationen von Kompressionsverfahren sind nunmal was umfangreicher. Und vorallem wenn man später nicht wegen Patentverletzungen probleme kreigen will, sollte man mal abchecken, was sonst so implementiert wurde/wird.

    Cu Selur

  • Nur als Nebeninfo :

    matroska kennt 16 unterschiedliche frame Typen, von denen im Augenblick nur 4 verwendet werden ( I, P, B, D ). Du könntest einen neuen frame type einführen, der sich auf frames weit vorne im Film bezieht, d.h. ausselhalb seines GOP/VOP. Das würde aber bedeuten daß Du ziemlich heftig in den codec selbst eingreifen müsstest, da einzelne frames über lange Zeit zwischen gebuffert werden müssten, sonst wird der Film von CD wegen der langen Suchzeiten unspielbar.

    Das matroska frame type concept könnte einen neuen I frame definieren, der im Buffer verbleiben soll um für einen P/B frame in der Zukunft wiederverwendet werden zu können. Wie gesagt, das wäre gleichzusetzen mit einer codec Neuentwicklung, also besser gleich auf AVC/h.264 warten ;).

    Eine andere Lösung, und leicht zu machen, wäre die geplanten 'control tracks' zu verwenden, damit können dann einzelne Sequenzen in einem Film, die sich immer wieder wiederholen, einfach nochmal abgespielt werden. War ursprünglich hauptsächlich für intro/outro gedacht, wenn mehrere eps auf einer CD liegen sollen, könnte aber auch dafür zweckentfremdet werden. Vorteil : Würde mit jedem codec funktionieren, und ohne Änderungen.....

    Freut euch auf matroska, den neuen open standard für multimedia container Formate

  • kommen wir mal zu etwas ähnlichem...
    sehr praktisch bei comics...
    man sieht ja das SEHR OFT der background der selbe ist und nur die "vektorgrafiken" draufgesetzt sind... hier könnte man ein frametyp definieren der ausserhalb des filmstreams liegt (parallel) - so ala picturepool - die eine höhere auflösung haben
    damit auch zooms und schwenks auf dem background sich auf das picturepool beziehen können...

    der spritecoder müsste so intelligent werden, dass er z.b. anhand der farbanzahl erkennt, dass es ein comic ist und so background und objekte trennt, der background wird mit den daten gefüttert die dann entstehen wenn die figuren durch bewegung über dem background freigeben. die figuren müssten durch ein vektortracer in kurven umgewandelt werden. (CorelTrace läßt grüßen)...

    der decoder müßte zusätzlich programmroutinen enthalten die zum beispiel in Corel RAVE enthalten sind..

    zur beschleunigung der analyse der frames auf identität zu "früheren" backgrounds
    müssten eigentlich so etwas ähnliches wie thumbnails des picturepools herhalten können. wie gesagt das gehirn arbeitet ja auch auflösungsunabhängig (nicht das auge!)

    oder um es einfacher zu machen könnte man vorerst ein codec schaffen das speziell für comics ist und dann später ein hybrid aus comicvisualencoder und naturalvisualencoder konstruieren....

  • hab es mir gerade durchgesehen... danke fürs link...
    was mir aber aufgefallen ist, das zwar im standard selber
    entsprechende profile die das vorhin besprochene enthalten können
    vorhanden sind... sodass authoringsysteme mit entsprechendem
    originalmaterial die composition entsprechend "günstig" verpacken
    können.... aber was heutige video-encoder machen ist meilenweit
    davon entfernt....

    ich sollte vielleicht das thema in "MPEG-4-Encoder weiterentwickeln" umbenennen... vielleicht hätte ich da einige Mißverständnisse vermieden...
    (btw. kann man das thema editieren????)

  • Es gibt ein Problem mit MPEG4. Es ist zuvielfältig.
    Wenn du willst kann ich dir mal die letzten Draft vor dem Standard schicken. Damit du mal siehst was noch alles dazu gehört. Auch ist MPEG4 noch nicht abgeschlossen(MPEG1 und 2 übrigens auch noch nicht). So das sich noch keiner daran machen konnte alles zu implementieren. Also hat man erstmal mit dem begonnen was man relative leicht aus bisherigem weiterentlickeln konnte und was wichtig ist.
    Über den Stand der Dinge ist eigentlich https://localhost/www.chiariglione.org/mpeg recht gut, leider ist die Seite im Moment down(letzte woche lief sie noch). Chiariglione ist übrigens der "Vorsitzende/Leiter" von MPEG.

    Wegen des Editieren des Titels. Das soll gehen, frag mich aber nicht wie.

    AC-Chan(Robert Vincenz)

    AC-Sama(Robert Vincenz)
    (werde für das -Chan zu alt :zunge: )

  • Zu Spritecoding:
    Ich hab mich mal vor ner weile damit beschäftigt und auch mit einigen cleveren Köpfen die sich mit Bild- und Videoverarbeitung gut auskennen unterhalten und dabei sind wir zu folgenden Schlussfolgerungen gekommen:

    1. wenn man nicht die Sprites vordem Encoden schon als solche hat, besser noch als 3D Modelle ist es sehr schwer und rechenintensiv diese zu extrahieren => hat man die Sprites nicht schon ist die Fehlerrate beim extrahieren wahrscheinlich so hoch, dass der Aufwand sich nicht lohnt

    2. vorallem bei komplexeren Sprites wird sich höchstwahrscheinlich kein Kompressionsgewinn gemacht, beim Spritecoding als Feature geht es vielmehr darum die möglichkeit zu haben Sprites auszutauschen als bessere Kompression (bei gleicher Qualität) zu erziehlen. (Kompressionsgewinne sind nur bei einfachen Zeichentrick/Anime clips wirklich zu erwarten.)

    => wir sind dann alle geschlossen zu der Ansicht gelangt, dass man anstatt sich mit Spritecoding zu beschäftigen man sich lieber H264 widmen sollte. ;)

    Cu Selur

    Ps.: Ich will euch aber nicht davon abbringen die Idee weiter zu verfolgen, da ich es witzig fände später mal in nem Film Schauspieler mit vergleichbarer Statur in Filmen auszuwechseln. ;)

  • Zitat

    Ps.: Ich will euch aber nicht davon abbringen die Idee weiter zu verfolgen, da ich es witzig fände später mal in nem Film Schauspieler mit vergleichbarer Statur in Filmen auszuwechseln.

    Auch wenn du es als Spass makiert hast, zeigt sich eigentlich genau dort das Problem des ganzen. Denn Sprites (ist das die mehrzahl eine getränkes? ;) dürfen keine eigenveränderung haben. Diese sind aber immer vorhanden. Bei hand gezeichnetem durch die Digitalisierung und bei Computergeneriertem durch diverse Schritte wie zoom und ähnlichem(die Bilder/Elemente sind meist nicht in der größe wie sie dann im Werk zu sehen sind). Es werden sich als mit größter Warscheinlichkeit solche sprites nie wirklich extrahieren lassen.
    Dies alles bezog sich auf fertige videos.

    AC-Chan(Robert Vincenz)

    AC-Sama(Robert Vincenz)
    (werde für das -Chan zu alt :zunge: )

  • ich seh den vorteil des spritecodings schon allein darin das INSBESONDERE bei comics
    die hintergründe (backgrounds) nicht neu aufgebaut werden müssen sondern die rekonstruktion aus altdaten völlig ausreicht - so gesehen müsste ein encoder mit spriteencoder ausreichen der die videodaten einfach nur in ebenen unterteilt...
    die objekte an sich noch zu zerteilen seh ich weniger sinn


    - so dann eher selurs meinung anzuschliessen ich gedenke..... grins

  • Zitat

    hintergründe (backgrounds) nicht neu aufgebaut


    Das wird aber auch nicht viel mehr bringen als wenn man es mit P-Frames komprimiert. Und wenn du damit meinst, die Hintergründe aus einer vorherigen Szene verwenden, dann will ich mal dran erinnern, was schon des öfteren im englischen Forum von den XviD Entwicklern gesagt wurde: "I-Frames machen nur einen kleinen Teil des kompletten Films aus".
    Ich würde nicht so viel Zeit mit Sprite-Coding verschwenden, ich glaub als erstes müssen mal Wavelet-I-Frames her, dann glaub ich, dass man mit nicht blockbasierenden Bewegungsvectoren mehr erreichen kann. Dann sollte man auch noch die bisherige DCT durch eine Integer basierende ersetzen. Wenn das interesiert, kann sich meine Quellcodebeispiele mal anschauen.

  • Zitat

    ann sollte man auch noch die bisherige DCT durch eine Integer basierende ersetzen.


    und dann geht's in Richtung h264 :)

    Was auch cool wäre, ist wenn sich ein paar Leut hinsetzen und mal versuchen skals Codec ordentlich zum laufen zu bringen. (mit GUI :) )

    Cu Selur

  • Zitat

    Was auch cool wäre, ist wenn sich ein paar Leut hinsetzen und mal versuchen skals Codec ordentlich zum laufen zu bringen. (mit GUI :) )

    jup!
    Das wuerde ich auch verdammt cool finden.

    DJ oSSi
    Du koenntest dir ja mal ein paar Gedanken ueber ein HVS-Model machen, da es nach XviD1.0 in dem Bereich weitergehen soll. Die XviD Devels (besonders sysKin) wuerden sich sicher ueber Ideen freuen.

  • Hybrid
    kannst du das mit dem HVS-Model näher erklären?

    @all
    also ich hab überlegt....
    eine weitere beschränkung wünsche ich mir entfernt...
    momentan verwendet man bewegungsvektoren die beschreiben
    das bildteile räumlich wandern...
    ich wünsche mir zusätzliche bewegugsvektoren die veränderungen
    im helligkeitsbereich erfassen
    (beispiel.. aus/ein/überblenden oder scheinwerfer und schattenwurf
    wenn das fertig ist müssten noch bewegungsvektoren für alphakanal
    dazu...das wäre zusammen mit dem ebenensplit sehr sinnvoll

    zusammengefasst wünsche ich mir vektoren für viel feiner abgestuftere
    kanäle nicht nur räumlich (tiefe,zoom fehlt ja auch noch) das ganze
    waveletbasiert und bei einfachen sachen könnte ein optimierter fraktal
    encoder der auflösungsunabhängig arbeitet noch sinnvoller sein..

    hat jemand den film PANIC ROOM gesehen... (ANFANG)
    wo die Buchstaben vor den häusern mitten in der Luft rumhängen
    das kann inzwischen software automatisch generieren....
    es erkennt also richtige 3D-räumliche bewegungen...

  • nur mal so gefragt:
    1. Haste Dir mal überlegt, ob und wieviel Deine 'Wünsche' an Einsparungne bringen könnten und wieviel Overhead sie erzeugen?
    2. Haste Dir mal h264 angeguckt?
    3. Haste Dir mal überlegt ob Deine Vorschläge nur was bringen wenn man das Roh-/Studiomaterial oder auch wenn man ne DVD als Quelle hat?

    HVS = Human Visual System
    Dabei geht es grob gesagt darum die Einschränkungen der Optischen Wahrnehmung auszunutzen.
    z.B.:
    - Luminanzunterschiedewerden früher erkannt als hrominanzunterschiede
    - Unterschiede im Vordergrund sind sichtbarer als solche im Hintergrund
    - Unterschiede in Flächen sind eher erkennbar als solche in hoch frequenten Bildteilen
    - Unterschiede in stehenden Bildteilen sind eher erkennbar als solche in bewegten Bildteilen

    Ganz nett zu lesen:
    http://www.irt.de/IRT/aktuelles/…_d-Fernsehb.pdf
    ( DJ oSSi: Achtung dies ist ein Text der ganze 17 Seiten enthält, es ist also durchaus verständlich, wenn Dein Interesse nicht so hoch ist, dass Du Dich aufraffst ihn zu lesen. Es gibt auch bessere, danna ber umfangreichere und neglische Texte zu dem Thema.)

    Allen die sich für HVS interessieren sei auch ans Herz gelegt sich über allgemeine Qualitätstestverfahren zu informieren, da in diesem Bereich öfter gute Informationen in Richtung HVS gesammelt werden.

    Cu Selur

  • Zitat

    ich wünsche mir zusätzliche bewegugsvektoren die veränderungen
    im helligkeitsbereich erfassen


    Wenn nur eine Änderung der Helligkeit in einem Macroblock auftritt, dann sind alle Werte bis auf den 1. Null (im Idealfall, nach der Quantizierung aber auf jeden fall), somit kann man sie einfach weg lassen, und den 1. Wert könnte man dann als deinen "Bewegungsvektor für Helligkeit" bezeichnen. Nur muss man in der Bewegungsvectorensuche auch darauf achten, denn oft wird eine Bewegung wargenommen, aber es hat sich nur die Helligkeit geändert. Hier muss man dann einen Algorithmus verwendet, der auf so etwas nicht "rein fällt". SAD (Summe aller absoluten Differenzen) z.B. ist hier recht anfällig, wenn man jedoch vor dem SAD die durchschnittliche Differenz berechnet und dann die Summer aller absoluten Differenzen von der durchschnittlichen Differenz berechnet kommt man dem realen Vector schon näher.

      DJ oSSi
    Es müssen nicht umbedingt neue Features eingeführt werden, erst sollten die vorhanden bis an ihre Grenzen ausgenutzt werden.

  • also ich würde lieber eine mathematische kurve beschreiben wollen als von 200 blöcken über 20-40 frames die einzelnen daten zu erfassen...
    kommt noch dazu das die kurve einen 3dimensionalen weg durch den farbraum mitbeschreiben kann und somit der idealfall der reinen helligkeitsänderung für diese art der beschreibung genauso einfach ist wie wenn dieser fall nicht eintritt...
    z.b. leicht gelblicher scheinwerfer oder diskolichter....
    wenn das überhaupt nichts bringen würde.. dann hätte man es ja bei den normalen bewegungsvektoren belassen können statt da noch GMC dazuzufügen....
    jede logische datentrennung ist sinnvoll... zumal qualitätssteigerung über das original hinaus nur auf diesem wege möglich sind.... (aufgabe der abhängigkeit von der auflösung)
    irgendwie sind mir viele der vektoren noch zu linear und eindimensional beschränkt

Jetzt mitmachen!

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