Keresés

Aktív témák

  • DcsabaS

    senior tag

    Csak jelzem, hogy Windows alá megjelent az új (5.03) DivX codec!

  • DcsabaS

    senior tag

    válasz Sipi #31 üzenetére

    Kedves Sipi!

    ''Gyűjtögetem a filmeket - és a legtöbb, amit megszerzek, gusztustalanul rossz minőségű. És még enyhén fogalmaztam. Div3-ban blokkosodva kódolt, elmosódott, nézhetetlen vackokkal van tele a Net.''
    Ez pontosan így van. (Ha valaki jót akar, magának kell csinálnia.)

    ''Merthogy két egyforma film nem létezik, nem lehet úgy kódolni, hogy na, beállítom egy csúszkán a maximális minőséget, és hajrá.''
    Ez is igaz. Sajnos az emberek többsége nem is látja azokat a képhibákat (vagy nem törődik velük), amik ellen kellene küzdeni, így aztán beletanulni sem hajlandó a szakmába.

    ''Volt egy kis vita az MPlayer listáján, ahol többen kérték, hogy legyen néhány előre beállított választási lehetőség, pl. jó-nagyon jó-szuper minőség. ...''
    Ez valóban szinte alkalmazhatatlan módszer, ugyanis a forrás minő(tlen)sége rendkívül változatos, márpedig döntően ez határozza meg, hogy mit kell tennünk a tulajdonképpeni kódolás előtt, és hogyan célszerű kódolnunk.

    ***********
    Kedves marcee!

    A kikockásodás (mint már volt szó róla) főképpen annak az eredménye, hogy túl nagy kvantálással dolgozik az adott helyen a codec. Éspedig azért, mert a codec nem eléggé jól ítéli meg, hogy mekkora sávszélességet érdemes felhasználni az adott helyen, és mert mi megengedtük neki (a max. quantizer túl nagy). (Habár, igazából, igenis jól ítéli meg, csak éppen a post-filter nem elég jó hozzá...)

    Ami a megfelelő beállításokat illeti, el kell mondjam, hogy egy tipikus DVD filmnél legalább egy nagyságrenddel egyszerűbb a helyzet, mintha kameráról, vagy videóról származó jelet tömörítenénk, ott ugyanis külön meg kell birkózni a megfelelő deinterlace-eléssel, PAL színszűréssel, croppolással, antialiasing szűréssel, átméretezéssel, zajszűréssel, kontraszt, színegyensúly, telítettség és fényerő beállítással és artifact mentesítéssel, stb. - nagyjából ebben a sorrendben.

    Csak ezután jöhet a DivX-be tömörítés, mindig 2 menetben, és azután, hogy jól szemügyre vettük a tömörítendő anyagot arra nézve, hogy mekkora az effektív felbontás, mennyire zajos (még mindig), mennyire mozgalmas, milyen hosszú, milyen hangot lesz célszerű hozzá készíteni, mekkora lehet a kész video, milyen gépen fogják lejátszani, stb.

    Maradva a konkrét kérdésednél:
    Ha egy filmnél van egy gyorsan mozgó jelenet, ahol kifogynánk a sávszélességből, akkor először is 2-menetes kódolást célszerű használni, mert akkor ide a codec maga is több key frame-et tesz le (akár mindegyik frame ilyen lesz), másodszor le kell csökkenteni a kvantálási maximumot a nekünk megfelelő méretűre. Mint már írtam, a DivX5-ös codec gyári default-ja (12) tűrhetetlenül magas, mert arra vezet, hogy még a legjobb 2-3 lemezes kódolásoknál is lesznek majd helyek, ahol a codec tényleg kihasználja a 12-es maximumot, és ezzel láthatóvá teszi a kockákat. Minőséginek szánt kódolásokhoz a maximumot 6-ra kell csökkenteni.

    Megjegyzem, hogy LEHETNE olyan post filtert csinálni a DivX-hez, amely szinte tökéletesen eltüntetné lejátszáskor a szóbanforgó kockákat. Sajnos a jelenlegi post filter nem ilyen, gondolom főleg azért, mert még így is túlságosan erős CPU kell a lejátszáshoz.

  • DcsabaS

    senior tag

    válasz Sipi #29 üzenetére

    ''Csak ne lenne még ezen kívül kb. 30 paraméter...''

    Na de minek neked annyi paraméter? Úgy értem, mit szeretnél csinálni? Egyszerűen csak kódolni DivX-ben, vagy esetleg valamilyen fehjlesztést végezni?

  • DcsabaS

    senior tag

    válasz Sipi #27 üzenetére

    ''A hangot miért a 2. menetben célszerű tömöríteni?''
    Az első menetben még felesleges, ugyanis amikor a 2. menetben tömörítjük, akkor egyúttal a mixelés is elvégezhető.

    ''Ha így csinálod, VBR is nyugodtan mehet, hiszen mindenképpen fix méretű file-t kapsz. Ha viszont nem akarom később darabolni, akkor nyugodtan használhatom?''
    Ha később nem akarod darabolni a videót, nem akarsz kimásolni valakinek egy rövidke részletet, akkor használhatsz VBR hangot is. (De minthogy úgyis a videó a döntő a méretek szempontjából, nem sokat nyersz azzal, ha a hangot CBR helyett VBR kódolással csinálod. Csak a kellemetlenség van vele, beleértve azt is, hogy az ilyen file-t a lassúbb gépek nehezebben tudják lejátszani megfelelő szinkronnal.)

    ''Kézzel be lehet tenni keyframe-et az ominózus helyekre (képváltásokhoz), vagy ezt teljesen automatikusan végzi a kodek''
    Az 5-ös DivX ezt automatikusan és nagyon jól elvégzi a 2-menetes kódolásnál. A konfigurációs file-ok editálásával módosíthatsz is rajta (de nincs értelme). A codec nagyon pontosan érzékeli, hogy hol érdemes elhelyezni új key frame-et. A kay frame-ek maximális távolságának default értéke 300, amit én 250-re szoktam állítani, így a legnyugisabb esetekben is max. 10 másodpercenként jön egy új. (Ha mondjuk a CD valahol megsérül, és ezért szemetet olvas be a lejátszó, akkor legkésőbb 10 másodperc múlva újra jó lesz a kép.)

    Feleslegesen nem érdemes szaporítani a key frame-ek számát, ez ugyanis a látható képminőséget nem javítja, ellenben a file méretét növeli. Van azonban olyan eset, amikor mégis sűríteni célszerű őket. Ha ugyanis az a célod, hogy egy archívált anyagból majdan innen-onnan kiemelj képeket, akkor azt könnyebb az egyes key frame-eknél megtenni. Tehát ha a távolságuk csak max 25, akkor 1 másodperces felbontásban emelhetsz majd ki képet, illetve állíthatod meg egy pillanatra a videó lejátszót.

  • DcsabaS

    senior tag

    válasz Sipi #7 üzenetére

    ''Pontosan mi az a quantizer? (Ha tudnám, a következő kérdésem is meg lenne válaszolva: miért nincs értelme, ha quant=1, miért jó a 2, és miért lesz egyre csúnyább, ha nő?)''
    A DivX kódolásnál többféle kvantálás is előfordul. A kvantálás általában azt jelenti, hogy valamit, ami folytonos (vagy közelítőleg annak vehető), diszkrét értékekkel helyettesítünk. (A digitalizálás ennek speciális esete.) Lehet kvantálni színmélységben, de ezt közvetlenül nem tudjuk befolyásolni, mondhatni a DivX codec belügye. Lehet a kép síkjában is, ami azt jelenti, hogy a codec ekkora négyzet alakú tartományokra bontja szét a képet. Értelemszerűen annál nagyobb lehet a tömörítés, minél nagyobbak a tartományok, ámde annál rosszabb is lesz a felbontás és artifact-ként láthatóvá válhatnak a ''rettegett'' négyzetek. Egyazon képen belül is változhat (az egymás követők között meg pláne), hogy milyen kicsi négyzetekig célszerű elmenni. A DivX codec az általunk megadott minimális/maximális méretek között keresi az optimumot, de nem mindig sikerül neki úgy. Tipikusan az van, hogy sötét, és folyamatosan változó árnyalatú, de nem struktúrált felületeken nagyon láthatókká válhatnak a négyzetek. Ha a maximum quantizert kisebbre állítjuk, akkor a négyzetek és a kontrasztjuk is kisebb lesz, vagyis nem lesz olyan kiábrándító a kép.

    ''Ezek szerint: ha konstans bitrátát (vbitrate=xxx), vagyis változó kvantálást használok, értelme van a min és max kvantálás megadásának.''
    Mindenképpen van értelme, ugyanis a képek belsejében is a határok közötti, de akár többféle kvantálással dolgozik a codec.

    ''Ezzel egyensúlyozhatok a nagyobb méret (kicsi min) és a rosszabb minőség (max nagy) között.''
    Igen. Ha muszáj erősen tömöríteni, akkor kénytelenek vagyunk növelni a maximális megengedett kvantálási méretet - de ez rontja a minőséget.

    ''Ha pedig konstans kvantálást (vqscale=xxx), ezeknek nincs értelme - ekkor a vrc_maxrate és vrc_minrate nyer értelmet?''
    A régi DivX codec-ekeknél tényleg volt olyan kódolás, amikor a kvantálás mérete határozott volt. Az 5-ös codec viszont mindig többféle kvantálást használ (hacsak nem állítod a minimumot és a maximumot azonosra), ami jobb módszer, csak nehezebben megjósolható a file végső mérete - hacsak nem 2-menetes a kódolás.


    Egyebek:
    Windows (VirtualDub) alatt mindent kézben lehet tartani, zseniális filterek vannak. Linux alatt meg szerintem neked kell majd megcsinálnod (bár lehet, hogy éppen ezt akarod).

    A hangot a 2. menetben célszerű tömöríteni. A mérete pontosan meghatározott, hacsak nem VBR-t használsz, ami viszont balfékség lenne, ugyanis az ilyen videókat utána nem lehet korrektül darabolni (hiszen ide-oda csúszkál a hang pozíciója).

    ''A key frame-ekkel érdemes variálni? Mit lehet vele elérni?''
    De még mennyire! A filmekben számos helyen van kameraváltás, és minden ilyen helyre key frame-et kell tenni, különben dupla sávszélességnél is OCSMÁNYAK lesznek az átmenetek. (A DivX5 a 2-menetes kódolásnál szinte az összes képváltást lefüleli.)

    ''Mit jelent a Bidirectional Encoding, QP és Gmc?''
    Részletesen is megismerhetők a www.divx.com-on, mindenesetre a tömör lényeg:
    BDE: a codec nemcsak a korábbi frame-ekből tud számolni a későbbiekre, hanem fordítva is. (Ez a tapasztalatok szerint majd 30 százalékos nyereségre vezet.)

    QP: Negyed pixeles pontossággal számolja ki az egyes tartományok színét, és úgy keresi az optimumot. (Ennek relatíve kicsi a haszna.)

    GMC: Az egész képre kiterjedően nagy pontossággal határozza meg, hogy az egyes makroblokkok hová mozdulnak. (Olyankor jelent nagy nyereséget, ha sok mozgás van, és a kép mégsem elmosódott. Sajnos lejátszásnál túl nagy plusz terhet jelent.)

    ATi TV kártya (SuSe) Linux alatt: egy munkatársamnak épp mostanra sikerült beüzemelnie a 2 hónapja vett kártyát (Miro PCTV Pro jellegű), miután letöltött valahonnan egy leges-legújabb drivert.

  • DcsabaS

    senior tag

    Na ha jól értelek, akkor nem is az MPLayer-rel van gondod, hanem azzal, hogy milyen stratégiával érdemes DivX-be kódolni. Nos tehát:
    1.) 2-menetes kódolást célszerű használni, mert ilyenkor a DivX codec okosabban tudja elosztani a sávszélességet, és pontosabban tudja elhelyezni a kay frame-eket.
    2.) A DivX codec a kvantálás méretével képes játszani (és ezzel az előírt méretű file-t produkálni), DE a gyári default 12-es maximum TÚL NAGY. (Főleg ez vezet a sötét és homogén részek kockásodásához.) 8-nál nagyobbra szinte sosem érdemes választani. 512x384 pixeles felbontásnál egy 1.5 órás filmhez 6 a legmegfelelőbb, hosszabb filmhez meg a 7, vagy a 8.
    3.) Célszerű használni egy segédprogramot (DivX Bitrate Calculator), amibe be lehet írni a film hosszát, a CD méretét és hogy mekkora sávszélességet akarunk hagyni a hangnak. Ebből már adódik, hogy mekkora sávszélességet kell beállítanunk a DivX codec-ben.
    4.) Kódolásnál az MPEG-4 Tools-nál a Bidirectional Encoding-ot feltétlenül célszerű használni, a QP-t és a Gmc-t csak akkor, ha elég erős lesz a lejátszásra szánt gép (mint már írtam).
    5.) Kódoláshoz a VirtualDub-ot célszerű használni, mert ott nagy rakás filtert is használhatunk, pl. olyanokat, amelyek kiszűrik a rendkívül sávszélesség-igényes zajokat.

Aktív témák

Hirdetés