Video codec
Videocodec - ett program/algoritm för att komprimera (det vill säga att minska storleken) av videodata (videofil, videoström) och återställa komprimerad data. En codec är en formelfil som bestämmer hur videoinnehåll kan "packas" och följaktligen video kan spelas upp. Det är också möjligt att koda video- och ljudinformation, lägga till undertexter, vektoreffekter, etc.
Funktionsprincipen för den enklaste codec
Låt oss först titta på kodning av en statisk bild (eller en enda bildruta ). Varje kodad bildruta i videoströmmen består av punkter ( pixlar ) som bildar en matris ( raster ). Codecen kan hålla reda på liknande arrayer av punkter med samma attribut (till exempel den blå bakgrundsfärgen i himmelsbilden) och istället för att lagra information om varje punkt (ljusstyrka och färg) i följande ramar separat, registrera endast första (nyckel) punkt och en räknare med antalet repetitioner av denna punkt tills färgen på denna punkt ändras. Dvs istället för att beskriva till exempel 1000 poäng kan det räcka med att endast beskriva 1 poäng + repetitionsräknare. Kvaliteten här kan styras genom att ställa in ett värde så att om skillnaden mellan punkterna är mindre, så anses de vara lika. Detta är den enklaste av komprimeringsmetoderna.
I JPEG utförs en block-för-block- diskret cosinustransformering på en ram, följt av kodning med hjälp av Huffman-algoritmen eller aritmetisk kodning .
För att bygga en dynamisk bild (videosekvens) används olika typer av ramar - förutom I-frames (som också kallas key ( engelska keyframes ) eller "referens"), som endast kan innehålla oberoende komprimerade makroblock, tillagd P- ramar ("difference"-ramar) kan innehålla både oberoende komprimerade makroblock och makroblock med hänvisning till en annan ram.
Mer avancerade komprimeringsformat tar, förutom tekniken ovan, hänsyn till principerna för att flytta arrayer av punkter i bilden, segmentera bilden i "rutor" med olika komprimeringskvalitet, med hjälp av en sekvens av ramar kodade på olika sätt och visas i en viss sekvens. De senaste codecna tar hänsyn till de psykofysiska egenskaperna hos uppfattningen av video av det mänskliga ögat och hjärnan, vilket gör att du kan minska storleken på data ytterligare utan "synlig kvalitetsförlust."
Algoritmerna använder också likheten med intilliggande bildrutor i videosekvensen.
Anmärkningsvärda codecs
- H.264 (AVC) är en proprietär codec.
- H.265 (HEVC) är en proprietär codec.
- H.266 (VVC) är en proprietär codec.
- VP8 är en gratis videocodec utvecklad av Google
- VP9 är en gratis videocodec utvecklad av Google.
- AV1
- Theora är en gratis videocodec utvecklad av Xiph.Org Foundation .
- Daala är ett gratis videokomprimeringsformat och referensvideocodec utvecklat av Xiph.Org
- DivX är en proprietär codec.
- Xvid är ett gratis alternativ till DivX.
Se även