DivX nach MPEG2/MPEG1 Transcoder

  • Hallo,


    nein, leider habe ich ihn nicht entwickelt, aber:
    es müsste doch möglich sein!
    Vielleicht sind MPEG-Spezialist(en) dabei, die sich der Sache annehmen. Ich
    selber kenne die Materie leider nicht im Detail.


    Ein paar Vorabüberlegungen:
    Volle DVD-Auflösung 720x576 entspricht 45*36=1620 Blöcke. Das ganze mal
    25 Vollbilder/s= 1620*25=40500 Blöcke/s.
    Bei 400 MHz Taktfrequenz eines sonst für VDR ausreichenden Prozessors,
    ergibt sich 400*10^6/40500 ca. 10000 Taktzyklen, die für das Transcoding
    eines Blocks (16*16 Pixel) zur Verfügung stehen. Dies müsste mit einer
    Hochsprache wie C locker zu schaffen sein.


    Es würde erstmal langen, wenn das "Home Theater"-Profil von DivX unter-
    stützt wird. Natürlich geht kein Scaling (auch nicht mehr nötig), aber
    das Hinzufügen unten, oben, links und rechts von schwarzen Balken für krumme
    DivX-Auflösungen wäre wohl drin, damit eine DVB-gerechte Auflösung für die
    DVB-Karte herauskommt.


    Für Leser, die sich wundern, was das soll:
    gemeint ist kein komplettes, zeitintensives de- und rekodieren des
    Videodatenstroms, sondern entpacken nur bis auf Makroblock-Niveau und neu
    verpacken in MPEG2 oder MPEG1.
    Vergleichbares gibt es für die reine MPEG2-Datenreduktion bei DVD's.
    Damit wären die Ruckelprobleme und auch Qualitätsmängel heutiger Lösungen (via
    mplayer z.B.) behoben.


    Vielleicht liest dies ja ein begnadeter Programmierer ;)


    Grüsse
    Walter

  • Hi!


    Hab zwar keinen Plan von der Materie, aber einmal eine Frage: Bist du dir sicher, dass die Makroblockebene bei MPEG2 und MPEG4 identisch sind?


    Gruß,
    Brougs78

    - -- --- ================================================================ --- -- -
    Antec Fusion, Intel E5200, Asus P5N7A-VM (VDPAU), DD CineS2 v6 + DD DuoFlex CI // yavdr-0.6.1
    - -- --- ================================================================ --- -- -

  • Hallo nochmal,


    Natürlich kann man die Makroblöcke nicht eins zu eins übernehmen, wäre ja zu einfach. Sie sind natürlich nicht identisch. Bestimmte Techniken sind in MPEG2 und MPEG1 nicht vorhanden.


    Deshalb meinte ich auch am Schluss "begnadeter" Programmierer, noch dazu mit MPEG-Kentnissen.


    Grüsse,
    Walter

  • soweit ich weiß gibt es doch größere hürden für das direkte transcoden von mpeg4->mpeg2/1.
    aus diesem grund wurde die entwicklung für mplayer,wo das vorgesehen war, auch eingestellt.
    mplayer bietet stattdessen den sehr schnellen echtzeitencoder lavc an.
    das skallieren und zufügen von schwarzen rändern,was ja den ausgleich des overscannings des tv bewirken soll,beherscht mplayer sowieso.
    ich nutze das schon seit 2 jahren.
    für ordendliche quallätät muß es aber schon eine cpu in der leistungsklasse eines athlon mit 900 mhz oder mehr sein.

  • Hallo SledgE,


    die Hürden sind sicherlich nicht unbedeutend...


    Ich glaube nicht, dass der Athlon 900 volle 720*576 in Echtzeit mit mplayer+lavc umcodiert. Ich glaube, Du meinst die halbe vertikale Auflösung (288), das deckt sich mit meinen Erkentnissen.


    Ein Transcoder würde auch auch schwachen CPU's laufen und zudem die bessere Qualität liefern.


    Vielleicht arbeitet doch jemand dran?


    Grüsse,
    Walter

  • 288 zeilen ist mir prinzipiell zu wenig wie dir sicher auch.
    mein alther athlon mit 950 mhz und pc133 sdram schafft damals ohne weiteres 528x576 bei im mittel 80% cpu-last.
    allerdings waren damls auch die divx-codecs noch deutlich genügsamer bei der cpu-last( keine b-frames,kein q-pel) und ich konnte zusätzliche schärfefilter,welche ich gerne bei den verwaschenen us-fernsehserien nutze, nicht immer zuschalten ohne das es an anspruchsvollen filmstellen ruckelte.
    heute verwende ich einen athlon mit 1820 mhz und 182 mhz fsb/speichertakt und an der performance hat sich leider nicht viel zum positiven verändert.
    die cpu-last liegt nun bei 30-45% mit den neusten xvid-codec und 544x576 bildpunkten ausgabeauflösung.
    720x576 sind auch ohne ruckler möglich,allerdings muß mann dann den quantisierungsfaktor von lavc auf 4 setzen damit es ruckelfrei bleibt.
    ich verwende allerdings lieber einen faktor von 3 und eine niedrigere auflösung weil ohnehin so gut wie kein tv die 720x576 auch wirklich auflösen kann.
    wo es da wirklich klemmt weiß ich bis heute nicht aber mit der wiedergabequalität bin ich auch so ganz zufrieden.

  • naja es lohnt wohl einfach den aufwand nicht.
    die ergebnisse mit mplayer sind bei entsprechenden setup durchaus ansprechend und zufriedenstellend.
    da bleibt nur noch wenig spielraum für optimierungen durch transcoding.
    ob mann dabei überhaupt noch was gewinnen kann weiß ich nicht.
    ich vermute das mit den aktuellen mpeg4-codecs kaum möglichkeiten bestehen da die unterschiede zu mpeg1/2 doch recht gravierend sind.
    viel interessanter wären pci-karten mit hardware-mpeg4-dekoder.
    da mpeg4 aber noch nicht abgeschlossen ist wird es mit der dazu benötigten hardware noch dauern.
    für moblitelefone gibt es aber schon vereinfachte hardwaredekoder.

  • Zitat

    Originally posted by SledgE
    da bleibt nur noch wenig spielraum für optimierungen durch transcoding.
    ob mann dabei überhaupt noch was gewinnen kann weiß ich nicht.
    ich vermute das mit den aktuellen mpeg4-codecs kaum möglichkeiten bestehen da die unterschiede zu mpeg1/2 doch recht gravierend sind.


    Hallo SledgE,


    man bräuchte auf jeden Fall viel weniger Rechenleistung für 720x576(400 MHz sollten auf jeden Fall genügen, s. a. mein erster Beitrag) und die Qualität wäre sicher besser als mplayer.


    Gruss
    Walter

  • 720x576 geht über mplayer zur zeit nicht in ordendlicher quallität bei mir.
    ich beschränke mich auf 544x576 was sowieso kaum ein tv wirklich auflösen kann.
    ein xvid mit qpel und b-frames bei voller pal-auflösung kann mann meiner erfahrung her nicht mal mit einem 1ghz-athlon abspielen.
    glaubst du wirklich das beim transcoden so viele operationen einspart werden können so das eine 400 mhz-cpu ausreicht?

Jetzt mitmachen!

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