Keyframes vs filstørrelse

Når man komprimerer video skal man altid sætte antallet af keyframes, og den generelle dogme lyder, at flere keyframes er lig højere kvalitet er lig større filstørrelse.
Men, er det nu også sådan det forholder sig?

Ovre hos FlashComGuru har de haft lavet en lille sammenlignende test af keyframes, og udover at de jo viser sig at være særdeles afgørende i forhold til seeking, så viser deres forsøg også, at flere keyframes ikke altid giver en større filstørrelse:
Flash Video: Keyframe density and filesize comparison

Kunne være at man selv skulle eksperimentere lidt ekstra næste gang der skal komprimeres :-)



Del:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg

3 kommentarer

  1. Andreas [Mediestunt ApS] siger: (20. februar 2007 kl. 15:26 )

    Hej Mads og Co.

    Nu har jeg læst både din notits og artiklen på Flashguru og følte at jeg ville knytte en lille kommentar, der måske kaster lidt bedre lys over sagen. For selvom jeg er helt enig i, at det altid er en god ide at prøve et par forskellige encodingindstillinger for af, så er der et par generelle ring, der altid gælder mht. brug/indvirkningen af keyframes.

    Langt de fleste codec arbejder nemlig ud fra et par algoritmer, der komprimerer både spatialt og temporalt. På simplificeret dansk kan det udtrykkes som balancen mellem hvor skarpt hver enkelt frame skal stå og hvor glidende bevægelser/overgange skal kunne vises… Og det er i denne balancegang at keyframes indvirker på det givne codec. Keyframes et steder, hvor hele framen ‘tegnes op’ og dette kræver meget data. Derfor arbejder codec på en måde, hvor de regner ud hvad de skal bruge data på mellem hver keyframe. For hvis der fx. sidder et ‘talking head’ foran en statisk baggrund, så finder codec’et det unødigt at bruge data på at tegne baggrunden op ustandseligt. Keyframes skal derfor indsættes frekvent nok til at billedefladen engang imellem bliver tegnet op på ny, men samtidig ikke alt for tit, da det både kan resultere i en større filstørrelse og i en lidt hakkende visning af lange glidende overgang - alt afhængigt af materialets oprindelige beskaffenhed. Dette er også årsagen til at de to vidt forskellige filmklip på Flashguru ikke giver en konsekvent større filstørrelse - da det ene er lange, glidende klip og det andet hurtigt klipning mellem mange forskellige billedkompositioner.

    Ergo - en god øvelse til hvor tit du skal bruge keyframes er fx ved brug af undertekster. Disse skal helst være synlige i så mange sekunder, at de når at blive ‘ramt’ af en keyframe, så man er sikker på, at de bliver tegnet helt skarpt op(fx 3 sek. = hver 75 frame ved en framerate på 25). Sæt ellers keyframes med så tilpas god afstand at glidene bevægelser ikke forekommer hakkende og brug så quality-parametret til at justere hvor meget af datastrømmen, der skal bruges på at tegne hver frame skarpt op vs. hvor glidende bevælgelser skal håndteres.

    Håber at det er til at forstå :)

  2. Andreas [Mediestunt ApS] siger: (20. februar 2007 kl. 15:38 )

    Sorry - glemte lige med at sige en afsluttende ting, som kobler det hele bedre sammen… Nemlig at frameraten, som er den sidste vigtige tinge at justere i forhold til at opnå det bedste resultat. For mange encoder altid i alt for høje framerates. Frekvensen af keyframes er jo forbundet til frameraten og en høj framerate er KUN nødvendig hvis der sker rigtig mange ting i videoen (meget bevægelse). Råmateriale af europæisk oprindelse bør som udgangspunkt heller aldrig være over 25 frames per sekund, hvilket tilsvarer PAL-formatet. En nedsat framerate vil nemlig logisk nok give mulighed for at der kan bruges mere data på at tegne hver enkelt frame op - der over tid gør at videoen fremkommer skarpere :)

  3. Mads Buch Stage siger: (20. februar 2007 kl. 16:28 )

    Hej Andreas,

    Tak for kommentaren, du har nogle ganske udmærket pointer.
    Det der var baggrunden for mit indlæg var såmænd bare det, at jeg altid er blevet tudet ørerne fuld med at flere keyframes giver større filstørrelse, men at det viste sig ikke altid at være tilfældet.

    Det eneste man kan konkludere er vidst at alle film er forskellige, og at det derfor altid kan betale sig at eksperimentere med de forskellige settings, bortset fra frameraten som du nævner.

    Ganske cool website du har dig i øvrigt :-)

Skriv en kommentar