FMUSER Wirless Overfør video og lyd enklere!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviterussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (tradisjonell)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> tsjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Nederlandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> French
gl.fmuser.org -> galisisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> gresk
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungarsk
is.fmuser.org -> islandsk
id.fmuser.org -> indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> litauisk
mk.fmuser.org -> makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> norsk
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> rumensk
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovenian
es.fmuser.org -> spansk
sw.fmuser.org -> Swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Yiddish
Forord
H264-videokomprimeringsalgoritmen er nå utvilsomt den mest brukte og mest populære av alle videokomprimeringsteknikker. Med introduksjonen av biblioteker med åpen kildekode som x264 / openh264 og ffmpeg, trenger de fleste brukere ikke lenger å gjøre for mye forskning på detaljene i H264, noe som i stor grad reduserer kostnadene for folk som bruker H264.
Men for å kunne bruke H264 godt, må vi fremdeles finne ut de grunnleggende prinsippene til H264. I dag skal vi se på de grunnleggende prinsippene til H264.
H264 oversikt
H264-komprimeringsteknologi bruker hovedsakelig følgende metoder for å komprimere videodata. inkludere:
Prediksjonskomprimering innen rammen løser problemet med romlig dataredundans.
Inter-frame prediction compression (bevegelsesestimering og kompensasjon) løser problemet med tidsdomene dataredundans.
Integer Discrete Cosine Transform (DCT), som forvandler den romlige korrelasjonen til irrelevante data i frekvensdomenet og deretter kvantiserer det.
CABAC-komprimering.
Den komprimerte rammen er delt inn i: I-ramme, P-ramme og B-ramme:
I frame: nøkkelramme, ved hjelp av komprimeringsteknologi innenfor rammen.
P-ramme: fremover referanseramme, når du komprimerer, refererer du bare til den tidligere behandlede rammen. Bruk rammelydkomprimeringsteknologi.
B-ramme: En toveis referanseramme. Under komprimering refererer den til forrige ramme og følgende ramme. Bruker komprimeringsteknologi mellom rammer.
I tillegg til I / P / B-rammer, er det også bildesekvenser GOP.
GOP: Mellom to I-rammer er en bildesekvens, og det er bare en I-ramme i en bildesekvens. Som vist under:
Nå skal vi beskrive H264-komprimeringsteknologien i detalj.
H264 komprimeringsteknologi
Det grunnleggende prinsippet til H264 er faktisk veldig enkelt, la oss kort beskrive prosessen med H264-komprimering av data. Videorammene fanget av kameraet (beregnet til 30 bilder per sekund) sendes til bufferen til H264-koderen. Koderen må først dele makroblokker for hvert bilde.
Ta følgende bilde som et eksempel:
Partisjon makroblokk
H264 bruker et 16X16-område som en makroblokk som standard, og det kan også deles inn i 8X8-størrelse.
Etter å ha delt makroblokken, beregne pikselverdien til makroblokken.
Analogt, beregnes pikselverdien til hver makroblokk i et bilde, og alle makroblokkene behandles som følger.
Underblokk
H264 bruker 16X16 makroblokker for relativt flate bilder. For å oppnå høyere kompresjonshastighet kan mindre delblokker imidlertid også deles inn i 16X16 makroblokker. Størrelsen på underblokken kan være 8X16, 16X8, 8X8, 4X8, 8X4, 4X4, som er veldig fleksibel.
På bildet ovenfor har de fleste 16X16 makroblokkene i den røde rammen blå bakgrunn, og en del av bildet av de tre ørnene er tegnet i denne makroblokken. For å bedre behandle de delvise bildene av de tre ørnene, er H264 flere underblokker delt inn i 16X16 makroblokker.
På denne måten, etter intra-frame komprimering, kan mer effektive data oppnås. Figuren nedenfor er resultatet av komprimering av de ovennevnte makroblokkene ved å bruke henholdsvis mpeg-2 og H264. Den venstre halvdelen er et resultat av komprimering etter MPEG-2-deleblokkdelingen, og den høyre halvdelen er et resultat av H264-underblokkkomprimering. Det kan sees at H264-divisjonsmetoden har flere fordeler.
Etter at makroblokken er delt, kan alle bildene i H264-kodebufferen grupperes.
Rammegruppering
For videodata er det hovedsakelig to typer dataredundans, den ene er dataredundans i tid, og den andre er dataredundans i rommet. Blant dem er dataredundansen i tid den største. La oss først snakke om redundansproblemet med videodatatiden.
Hvorfor er tidsredundansen størst? Forutsatt at kameraet tar 30 bilder per sekund, er dataene til disse 30 bildene stort sett relatert. Det er også mulig at mer enn 30 bilderammer, titalls bilder eller hundrevis av bilderammer er spesielt nært beslektede.
For disse veldig nært beslektede rammene trenger vi faktisk bare å lagre en dataramme, og andre bilder kan forutsies fra denne rammen i henhold til visse regler, slik at videodataene har mest tidsredundans.
For å oppnå at de aktuelle bildene komprimerer data gjennom prediksjonsmetoden, er det nødvendig å gruppere videorammene. Så hvordan kan du bestemme at visse rammer er nært beslektede og kan grupperes sammen? La oss se på et eksempel. Nedenfor er en fanget videoramme av en gruppe biljardkuler i bevegelse. Biljardkulene ruller fra øvre høyre hjørne til nedre venstre hjørne.
H264-koderen tar ut to tilstøtende rammer hver gang for å sammenligne makroblokkene for å beregne likheten til de to rammene. Som vist under:
Gjennom makroblokk-skanning og makroblokk-søk kan det bli funnet at korrelasjonen mellom de to rammene er veldig høy. Videre er det funnet at korrelasjonsgraden til denne gruppen rammer er veldig høy. Derfor kan de ovennevnte rammene deles inn i en gruppe. Algoritmen er: i de tilstøtende bildene er pikslene som vanligvis er forskjellige bare innenfor 10%, lysstyrkeforskjellen overstiger ikke 2%, og kromatisitetsforskjellen endres bare innen 1%. Vi tror dette Grafene kan grupperes sammen.
I en slik gruppe rammer, etter koding, beholder vi bare fullstendige data for det første innlegget, og andre rammer blir beregnet ved å referere til forrige ramme. Vi kaller den første rammen IDR / I-ramme, og andre rammer kaller vi P / B-rammen, så vi kaller den kodede datarammegruppen GOP.
Beregning av bevegelse og kompensasjon
Etter at rammene er gruppert i H264-koderen, er det nødvendig å beregne bevegelsesvektorene til objektene i rammegruppen. Tar vi den ovennevnte bevegelige biljardvideoen som et eksempel, la oss ta en titt på hvordan den beregner bevegelsesvektoren.
H264-koderen tar først ut to bilder av videodata fra bufferoverskriften i rekkefølge, og utfører deretter makroblokkskanning. Når et objekt blir funnet på et av bildene, blir søket utført i nærheten av det andre bildet (i søkevinduet). Hvis objektet er funnet i et annet bilde på dette tidspunktet, kan objektets bevegelsesvektor beregnes. Følgende bilde viser posisjonen til biljardballen etter søk.
Gjennom forskjellen mellom posisjonene til biljardkulene i bildet ovenfor, kan retning og avstand på bordbildet beregnes. H264 registrerer avstanden og retningen til ballbevegelsen i hver ramme etter tur, og det blir følgende.
Etter at bevegelsesvektoren er beregnet, trekkes den samme delen (det vil si den grønne delen) for å få kompensasjonsdataene. Til slutt trenger vi bare å komprimere og lagre kompensasjonsdataene, og deretter kan originalbildet gjenopprettes ved dekoding. De komprimerte dataene trenger bare å registrere en liten mengde data. Som følger:
Vi kaller bevegelsesvektor og kompensasjon som komprimeringsteknologi mellom rammer, som løser dataredundansen til videorammer i tide. I tillegg til komprimering mellom rammer, må også datakomprimering utføres innenfor rammen. Datakomprimering innen rammen løser overflødig dataredundans. Nå skal vi introdusere komprimeringsteknologien innen rammen.
Intra spådom
Det menneskelige øye har en viss gjenkjenning av bildet, det er veldig følsomt for lysstyrken på lav frekvens, og er ikke veldig følsom for lysstyrken på høy frekvens. Basert på noen undersøkelser kan data som ikke er følsomme for menneskelige øyne, fjernes fra et bilde. På denne måten foreslås teknologi for intra-prediksjon.
In-frame komprimering av H264 er veldig lik JPEG. Etter at et bilde er delt inn i makroblokker, kan hver makroblokk forutsies i 9 moduser. Finn prediksjonsmodusen som er nærmest originalbildet.
Følgende bilde er prosessen med å forutsi hver makroblokk i hele bildet.
Sammenligningen mellom bildet etter intra-prediksjon og originalbildet er som følger:
Deretter trekkes originalbildet og det intra-predikerte bildet for å oppnå en restverdi.
Lagre deretter informasjonen om prediksjonsmodus vi fikk før, slik at vi kan gjenopprette det opprinnelige bildet når vi dekoder. Effekten er som følger:
Etter komprimering mellom bilder og bilder, selv om dataene er kraftig redusert, er det fortsatt rom for optimalisering.
Gjør DCT på gjenværende data
Resterende data kan bli utsatt for heltall diskret cosinustransformasjon for å fjerne korrelasjonen av dataene og ytterligere komprimere dataene. Som vist i figuren nedenfor, er venstre side makroblokken til de opprinnelige dataene, og høyre side er makroblokken til de beregnede restdataene.
Makroblokken for gjenværende data digitaliseres som vist i figuren nedenfor:
DCT-konvertering utføres på den gjenværende datamakroblokken.
Etter at de tilknyttede dataene er fjernet, kan vi se at dataene komprimeres ytterligere.
Etter at DCT er ferdig, er det ikke nok, og CABAC er nødvendig for tapsfri komprimering.
CABAC
Ovennevnte intra-ramme komprimering er en lossy komprimeringsteknikk. Med andre ord, etter at bildet er komprimert, kan det ikke gjenopprettes helt. CABAC er en tapsfri komprimeringsteknologi.
Tapsfri komprimeringsteknologi kan være den mest kjente for alle er Huffman-koding, en kort kode for høyfrekvente ord, en lang kode for lavfrekvente ord for å oppnå formålet med datakomprimering. VLC brukt i MPEG-2 er denne typen algoritme, vi tar AZ som et eksempel, A tilhører høyfrekvente data, og Z tilhører lavfrekvente data. Se hvordan det gjøres.
CABAC er også en kort kode for høyfrekvente data og en lang kode for lavfrekvente data. Samtidig vil den komprimere basert på kontekst, som er mye mer effektiv enn VLC. Effekten er som følger:
Bytt nå ut AZ med en videoramme, og det vil se ut som følger.
Det er åpenbart fra bildet ovenfor at det tapsfrie kompresjonsopplegget ved bruk av CACBA er mye mer effektivt enn VLC.
sammendrag
På dette punktet er vi ferdig med H264-kodingsprinsippet. Denne artikkelen snakker hovedsakelig om følgende punkter:
1. Jianyin introduserte noen grunnleggende konsepter i H264. Slik som I / P / B-ramme, GOP.
2. Forklarte de grunnleggende prinsippene for H264-koding i detalj, inkludert:
Makroblokk divisjon
Bildegruppering
Intra-frame komprimeringsteknologiprinsipp
Prinsippet om komprimeringsteknologi mellom rammer.
DCT
CABAC kompresjonsprinsipp.
|
Skriv inn e-post for å få en overraskelse
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviterussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (tradisjonell)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> tsjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Nederlandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> French
gl.fmuser.org -> galisisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> gresk
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungarsk
is.fmuser.org -> islandsk
id.fmuser.org -> indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> litauisk
mk.fmuser.org -> makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> norsk
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> rumensk
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovenian
es.fmuser.org -> spansk
sw.fmuser.org -> Swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Yiddish
FMUSER Wirless Overfør video og lyd enklere!
Kontakt
Adresse:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Kina 510620
Type kategori
Nyhetsbrev