Læs på denne side:

Codec – kort forklaring af de mest almindelige, bl.a. mpeg
Algoritmer – hvordan bliver filerne mindre, opskrifter til komprimering
Tips om Codec – Tips omkring CoDec


Codec
Codec er den COder/DECoder som anvendes til at komprimere din fil. Altså en algoritme der fortæller hvordan filen er komprimeret.

AVI filer
indeholder en såkaldt FOURCC, som er en fire-cifret kode. Fordi Avi er et container-format er alle avi-filer opbygget på samme måde og informationer om komprimering findes i Headeren hvor FOURCC-koden er. Disse koder blev adopteret og registreret af Microsoft tilbage i starten med VFW og Win 3.11. Ved at aflæse denne kode kan man se navnet på den algoritme der er anvendt til at komprimere filen – altså hvilket Codec.

MPEG filer
indeholder  en såkaldt PAT (Program Association Table) og en PMT (Program Map Table) hvor informationer om filen ligger gemt. MPEG kan kodes som enten Elementary Streams (ES) eller som Transport Streams (TS).
ES kan kun indeholde een datatype, altså enten kun video eller kun audio. D.v.s. at du har video og audio i hver deres fil.
TS kan indeholde flere datatyper – altså også både audio og video. De forskellige streams i en TS behøver ikke være synkrone.
De fleste mpeg-encodere producerer ES hvor du får lavet en video-fil  og en audio-fil med samme navn men forskellige typenavn.

Hvordan du kan se oplysningerne
Bruger du f.eks. MediaInfo eller Movie-ID til at finde informationer om din video-fil anvender disse programmer FOURCC koden i avi-filen til at bestemme typen. Begge programmer kan også fortælle en lille smule om MPEG filer og MPEG-test er et andet lille program kun til MPEG.
MediaInfo er det mest avancerede og opdaterede af programmerne og kan også fortælle en masse informationer om MPEG og HD video.
Bemærk: Hvis du ikke kan få downloaded MediaInfo på ovenstående link så prøv det andet link på Link-siden – det henter programmet direkte.

FOURCC kan også findes manuelt i avi-filer ved at åbne filen i Notesblok og så søge efter “vids”, lige derefter kommer den firecifrede FOURCC kode som fortæller hvilket codec der er anvendt. 
Her på www.fourcc.org kan du finde en liste over de fleste koder.
DVCodec – CoDec til DV25 filer fra Panasonic – påstået bedre end Microsofts DV-avi codec. Så det…..


Forskellige Codec til AVI  og  MPEG  filer.

dv25
FOURCC som benyttes til DVCPRO og adskiller sig ved at anvende 4:1:1 aftastning til både NTSC og PAL. DVCPRO er Panasonic ækvivalent til MiniDV. dv25 henviser til at det er en 25Mbps videostream.
Gemmes som avi.

dv50
FOURCC som benyttes til DVCPRO50 med 4:2:2 aftastning og 50Mbps videostream.
Gemmes som avi.

dvsd / DVSD
FOURCC fra bl.a. Adobe, Sony og Pinnacle system DV codec med aftastning 4:2:0 til PAL og 4:1:1 til NTSC og er også en 25Mbps video stream. 
dvsd Følger med Pinnacle DV produkter. Alle mine AVI filer benytter dette codec hvis jeg kører ind fra DV500. Svarer stort set til Sony Digital Video (DVSD) codec. Benyttes også af Adobe og StudioDV.
Gemmes som avi.

H.261 og H.263
Er en ITU reference for standard kompression af video telefoni signaler. Disse Codecs ligger på min computer og følger med Windows. H.263 bruges af Video for Windows og Quick Time med fast billedstørrelse på 176×144 pixels og er benytter bl.a. DCT algoritmen.
Gemmes som avi. 

JPEG
Joint Photographic Experts Group er en meget udbredt komprimeringsform til progressive stillbilleder. Den bliver brugt overalt på Internettet. JPEG kan køres meget hurtig og kan godt bruges til at komprimere Video med 25-30 billeder i sekundet, men her er M-JPEG mere anvendelig da den er beregnet til video.
JPEG benytter DCT algoritmen og er bedst til højtopløste fotografier samt 8-bit gråtone billeder.
Gemmes som jpg. 

M-JPEG
Står for Motion JPEG og er en JPEG-lignende kompression og Dekompression af Real-Time video op til 25-30 billeder/sekund.
Meget god kvalitet hvor kompressionsgraden kan justeres fra 1:1 og opefter – alt efter hastigheden på dit system. Kan bruges direkte i redigeringsprogrammer og giver en høj kvalitet med minimalt tab.
Benytter sig af DCT algoritmen og er specielt beregnet til interlaced video. Hvert field af et interlaced billede i videoen bliver komprimeret individuelt (spatial compression). Derudover har M-JPEG indbygget interface til de forskellige capture-kort.
Gemmes som avi. 

MPEG
Moving Picture Experts Group. Som navnet antyder er der her tale om en komprimeringsform der er specielt lavet til video og stammer helt tilbage fra 1988.
MPEG adskiller sig fra JPEG og MJPEG i måden den komprimerer på.
MPEG findes i flere varianter benævnt MPEG-1, MPEG-2, MPEG-3 og MPEG-4. De er beskrevet herunder.
Filerne kan hedde mange forskellige ting: *.m1v; *.m2v; *.mpv; *.vbs; *.mpg; *.vob; *.mpe; *.mpeg; *.mp2; *.m2p; *.avi (MPEG) o.a. 

MPEG-1
MPEG-1 benyttes til video hvor fil-størrelsen går forud for kvaliteten.
Video-CD’er til afspilning i DVD-afspillere benytter MPEG-1 med standard indstillinger for bitrate osv. (Se under VCD-info).
MPEG-1 anvender bl.a. VQ, DCT, RLE, Predictiv coding (DPCM), Motion Compensation (MC), Motion Estimation (ME) og endelig VLC. Der er forskel på kodning af I-, B- og P-frames (Se MPEG-2).
Video gemmes som m1v, mpg, avi (MPEG), mpeg o.a. 

MPEG-2
Primært udviklet til DVD produktion med video og audio (Audio MPEG-1 layer 2 eller wav, AC3 m.m.). Baseret på MPEG1 men med højere data hastigheder og bedre kvalitet. Kræver meget computerkraft både at kode og dekode. Ofte anvendes speciel hardware til dette.
MPEG2 anvender bl.a. DCT samt Motion Prediction (Bevægelses forudsigelse). Desuden kan der bruges Variabel eller konstant bitrate. 
En MPEG-2 video-stream indeholder 3 typer billeder (Frames) benævnt I, B og P.
* I-billeder (Intra) er komprimeret som et helt billede og indeholder alle data for at genskabe dette billede.
* B-billeder (Bi-directional) benytter data fra det foregående (I eller P) samt det efterfølgende billede (I eller P) og kan kun genskabes hvis begge de 2 billeder er til stede. B-billeder fylder mindre end P-billeder.
* P-billeder (Predictive) bruger data fra det foregående billede (I eller P) og kan kun genskabes ved brug af data fra disse billeder. P-billeder fylder mindre end I-billeder.

I,B og P billeder sammensættes i grupper som benævnes GOP og består ofte af 12 – 15 billeder.
En GOPer ofte 15 billeder (GOP-15) i denne rækkefølge: I-B-B-P-B-B-P-B-B-P-B-B-P-B-B.
Den mindste enhed en MPEG-2 video kan opdeles i, er en GOP da P og B billeder er afhængige af de omkringliggende billeder.
MPEG-2 anvendes også i professionelle videoredigeringsanlæg hvor det så benyttes ene I-frames.
M-JPEG er efterhånden ved at blive overhalet af MPEG-2 til arkivering af video.
Video gemmes som m2v, mpg, mp2, m2p m.fl. 

MPEG-3
MPEG-3 var først udviklet til HDTV video applikationer, men dette er nu inkluderet i MPEG-2.
[MP3 filer er ikke MPEG-3, men benytter MPEG-2 Audio Layer 3 komprimering]. 

MPEG-4
En metode til at kode audiovisuelle objekter der kom frem omkring 1997 og blev introduceret af Apple Quick Time. Meningen var at det skulle være muligt at indlejre data der fortalte noget om hvordan de var kodet og gøre det muligt for applikationer at hente eventuelle manglende algoritmer og codecs.
MPEG-4 er, her i 2005, ved at blive den nye komprimeringsform til digital-fjernsyn (HDTV). Der sker for tiden en masse omkring MPEG-4 og det bliver udviklet på det fra flere forskellige sider. En standard for digital-fjernsyn kan man dog ikke enes om endnu (når man ikke kan enes er det ofte fordi den der kommer først med en god ide kræver licens af de andre – så det er som regel økonomien der styrer slagets gang).
>MPEG-4 anvendes til HD video med bl.a. AVCHD og benytter H.264 algoritmen m.m. AVCHD er nu (2009) blevet “standard” for consumer videokamera og benyttes stort set overalt til HD videokamera. Nogle benævner det AVCHD, nogle H.264, nogle MPEG-4 og nogle AVC. Der er mange underkategorier af AVCHD og kameraproducenterne benytter næsten hver deres type. Der kommer nok aldrig en helt ens standard. Her gælder også tommelfingerreglen om, at jo højere bit-rate des bedre kvalitet. Læs mere om formatet på HD-siderne.
MPEG-4 benytter bl.a. DCT algoritmen samt flere ting fra H.263.
Gemmes som avi, mov, wmv o.a.
Læs mere om den her: MP4.

Cinepak
Fra Digital Origin, CTI, udviklet tilbage i 1990 og er nok det mest udbredte codec til små videoer på CD-rom. Både Encoder og Decoder er indbygget i Video for Windows og Quick Time. Cinepak er ikke så god til at lave små filer med lav datarate som f.eks. Sorenson, men den kræver til gengæld ikke så meget computerkraft. Hvis du vil lægge video på en CD er det et godt codec at bruge fordi det ligger på stort set alle computere.
Anvender bl.a. VQ (Vector Quantization) algoritme.
Gemmes som avi.

Sorenson video
Udviklet af Sorenson Vision og anvendt i Quick Time. Et meget effektivt codec som udmærker sig ved høj kompression og mulighed for lav bitrate samt Variabel bitrate til streaming video. Er god at bruge til video og animationer. Tager lang tid at kode. Er standard i Quick Time siden version 3.
Anvender VQ (Vector Quantization) algoritme med Motion Compensation.
Gemmes som qt.

Windows Media Video
Det primære codec for Microsoft’s Windows Media teknologi. Udspringer fra MPEG-4 men skulle give betydelig bedre billeder med en mindre bitrate.
Benytter DCT samt Motion Prediction (lige som MPEG-4).
Gemmes som wmv.

Indeo 3.2
Intels Indeo kom frem på samme tid som Cinepak og er lige så udbredt, men det benytter kun 16-bit farver og er ca. 30% hurtigere end cinepak. Dette codec kan anvendes i Video for Windows og Quick Time.
Indeo video 5.10 er dog meget bedre med flere muligheder.
Anvender VQ (Vector Quantization) algoritme.
Gemmes som avi. 

DivX
DivX codec er baseret på MPEG-4 video kompression standard, designet primært til video overførsel over langsomme netværk som f.eks. Internet og WAP.
Faktisk er der 2 Codecs som begge benævnes DivX codec, men den nyeste version har nummer 4.xx (eller 5.xx) medens den originale har nummer 3.xx.
Den originale (3.xx) codec er baseret på Microsofts MPEG4 V3 codec, som blev “hacket”, ændret og sendt ud som DivX V.3.xx. Grunden hertil var den, at “man” ønskede at kunne kode til AVI-filer, medens Microsoft kun ønskede at anvende ASF/WMV formatet. DivX indeholder også “hacket” kode fra MP3 og WMA codec’erne.
DivX V4.xx har intet med Microsoft at gøre. Det er blevet opbygget helt fra bunden og er stadig under udvikling (5.xx).
Gemmes som avi.

Algoritmer

Huffman Coding
Dette er en metode til kompression af data. Det er lige meget hvilke data, billeder, lyd, whatever. Huffman Coding er en af de teknikker der anvendes i JPEG, MPEG, H.261 og H.263 for at hjælpe med kompressionen.
Det virker nogenlunde sådan: Først kigger vi på de data der skal komprimeres og laver en liste over hvor mange gange et bestemt mønster gentager sig. Så laver vi et meget lille kodeord for det mønster der optræder oftest. Dernæst laver vi et lidt længere kodeord til det mønster der optræder næstmest og sådan bliver vi ved til der ikke er mere data. På den måde bliver det største og mest gentagne dataområde tildelt den mindste plads.
Hvis du vil læse mere om Huffman Coding kan denne engelske side anbefales: www.cs.duke.edu

Run Length Coding
RLC er en anden form for algoritme. Den læser koden og hver gang den finder f.eks 50 efterfølgende bytes der er ens smider den dem ud og indsætter i stedet for en kode som fylder 2 bytes der fortæller at de næste 50 bytes er ens.
Denne form for komprimering er ikke så effektiv som andre, men den bruges dog som en del af bl.a. JPEG, MPEG, TIFF, H.261 og H.263 kompressionsmetoderne fordi den er meget hurtig.
Læs en simpel forklaring hentet fra www.eee.bham.ac.uk (Engelsk PDF).

Motion Compensated Prediction Coding
Forestil dig et billede fra din stue hvor kameraet står fast på stativ, det vil sige hele baggrunden ikke bevæger sig. Det eneste der flytter sig er “Lille Ole” som sidder på gulvet og leger. MP undersøger hvert billede og sender kun informationer om de ting der ændrer sig – alt det andet kender vi jo (temporal compression). Det vil sige at komprimeringen bliver meget effektiv og filen på harddisken meget lille. Benyttes bl.a. til MPEG.
Du kan se grafisk fremstilling hentet fra www.stanford.edu (PDF dokument – engelsk).

DCT
Betegnelse for Discreet Cosine Transformation. Bruges i bl.a. DV, M-JPEG, MPEG og JPEG kompression ved at Lys og Farveinformationerne bliver gemt som frekvens koefficient. (Så ved vi dét ;o)
DCT komprimerer ikke data, men konverterer dem så de er klar til at blive komprimeret og DCT betegnes som “Pseudo lossless” – altså ikke helt tabsfri.
Tabet er minimalt og udgøres af begrænsninger i de aritmetiske operationer, altså f.eks det begrænsede antal decimaler.
Læs her på denne engelske side om DCT.

VQ
Vektor kvantisering.
Kvantisering foregår på signalet fra DCT konverteringen og med kvalitetstab, da det er i denne process selve komprimeringen foregår. 
Kvantisering er selve kernen i komprimeringen og der findes mange forskellige kvantiserings-tabeller. I de bedre konverteringsprogrammer kan du selv gå ind og opsætte kriterier for kvantiseringen – det foregår i en tabel hvor man indsætter værdier. Alt efter hvilket codec der skal komprimeres med er denne tabel større eller mindre.
Vektor kvantisering anvendes ved DV, MPEG, MJPEG m.fl.

VLC
Variabel Length Coding.
Benyttes til at konvertere VQ signaler til en fast bit-rate, som anvendes af f.eks. DV25 (25Mb/s).

Tips

Jeg har fundet en side på engelsk som fortæller en masse omkring Algoritmer til indkodning af billeder og video. Læs uddrag her eller gå til den originale side her.

Og på denne side hos Sony, kan du læse om processen for DV og DVCam:
Bliv Klog På DV Kodning (PDF).