FMUSER Wirless lähettää videota ja ääntä helpommin!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albania
ar.fmuser.org -> arabia
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaidžanilainen
eu.fmuser.org -> baski
be.fmuser.org -> valkovenäläinen
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> katalaani
zh-CN.fmuser.org -> kiina (yksinkertaistettu)
zh-TW.fmuser.org -> Kiina (perinteinen)
hr.fmuser.org -> kroatia
cs.fmuser.org -> tšekki
da.fmuser.org -> tanska
nl.fmuser.org -> Dutch
et.fmuser.org -> viro
tl.fmuser.org -> filippiiniläinen
fi.fmuser.org -> suomi
fr.fmuser.org -> French
gl.fmuser.org -> galicialainen
ka.fmuser.org -> Georgian
de.fmuser.org -> saksa
el.fmuser.org -> Greek
ht.fmuser.org -> Haitin kreoli
iw.fmuser.org -> heprea
hi.fmuser.org -> Hindi
hu.fmuser.org -> Unkari
is.fmuser.org -> islanti
id.fmuser.org -> indonesia
ga.fmuser.org -> irlantilainen
it.fmuser.org -> Italian
ja.fmuser.org -> japani
ko.fmuser.org -> korea
lv.fmuser.org -> latvia
lt.fmuser.org -> Liettua
mk.fmuser.org -> makedonia
ms.fmuser.org -> malaiji
mt.fmuser.org -> maltalainen
no.fmuser.org -> Norja
fa.fmuser.org -> persia
pl.fmuser.org -> puola
pt.fmuser.org -> portugali
ro.fmuser.org -> Romania
ru.fmuser.org -> venäjä
sr.fmuser.org -> serbia
sk.fmuser.org -> slovakki
sl.fmuser.org -> Slovenian
es.fmuser.org -> espanja
sw.fmuser.org -> swahili
sv.fmuser.org -> ruotsi
th.fmuser.org -> Thai
tr.fmuser.org -> turkki
uk.fmuser.org -> ukraina
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kymri
yi.fmuser.org -> Jiddiš
Esipuhe
H264-videopakkausalgoritmi on nyt epäilemättä yleisimmin käytetty ja suosituin videopakkausmenetelmistä. Kun otetaan käyttöön avoimen lähdekoodin kirjastot, kuten x264 / openh264 ja ffmpeg, useimpien käyttäjien ei tarvitse enää tutkia liikaa H264: n yksityiskohtia, mikä vähentää huomattavasti H264: n käyttäjien kustannuksia.
Mutta jotta voimme käyttää H264: ää hyvin, meidän on vielä selvitettävä H264: n perusperiaatteet. Tänään tarkastelemme H264: n perusperiaatteita.
H264 yleiskatsaus
H264-pakkaustekniikka käyttää pääasiassa seuraavia menetelmiä videotietojen pakkaamiseen. sisältää:
Kehyksen sisäinen ennustepakkaus ratkaisee paikkatietojen redundanssin ongelman.
Kehysten välinen ennustepakkaus (liikkeen estimointi ja kompensointi) ratkaisee aika-alue-datan redundanssin ongelman.
Integer Discrete Cosine Transform (DCT), joka muuntaa spatiaalisen korrelaation merkityksettömäksi dataksi taajuusalueella ja kvantisoi sen.
CABAC-pakkaus.
Pakattu kehys on jaettu I-kehykseen, P-kehykseen ja B-kehykseen:
I kehys: avainkehys, käyttäen kehyksen sisäistä pakkaustekniikkaa.
P-kehys: eteenpäin suuntautuva viitekehys, kun pakataan, viittaa vain aiemmin käsiteltyyn kehykseen. Käytä kehyksen äänenpakkaustekniikkaa.
B-kehys: Kaksisuuntainen viitekehys. Pakkauksen aikana se viittaa edelliseen kehykseen ja seuraavaan kehykseen. Kehysten välisen pakkaustekniikan käyttö.
I / P / B-kehysten lisäksi on myös kuvasekvenssejä GOP.
GOP: Kahden I-kehyksen välissä on kuvasarja, ja kuvasarjassa on vain yksi I-kehys. Kuten alla:
Nyt kuvataan H264-pakkaustekniikka yksityiskohtaisesti.
H264-pakkaustekniikka
H264: n perusperiaate on itse asiassa hyvin yksinkertainen, kuvataan lyhyesti H264-tiedon pakkausprosessi. Kameran kaappaamat videokehykset (laskettuna nopeudella 30 kuvaa sekunnissa) lähetetään H264-kooderin puskuriin. Kooderin on ensin jaettava makrolohkot jokaiselle kuvalle.
Ota seuraava kuva esimerkkinä:
Osio-makrolohko
H264 käyttää oletusarvoisesti 16X16-aluetta makrolohkona, ja se voidaan myös jakaa 8X8-kokoon.
Laske makrolohkon jakamisen jälkeen makrolohkon pikseliarvo.
Vastaavasti lasketaan kuvan jokaisen makrolohkon pikseliarvo ja kaikki makrolohkot käsitellään seuraavasti.
Alalohko
H264 käyttää 16X16-makrolohkoja suhteellisen tasaisille kuville. Suuremman pakkaussuhteen saavuttamiseksi pienemmät alilohkot voidaan kuitenkin jakaa myös 16X16-makrolohkoihin. Alalohkon koko voi olla 8X16, 16X8, 8X8, 4X8, 8X4, 4X4, mikä on erittäin joustavaa.
Yllä olevassa kuvassa suurimmalla osalla punaisessa kehyksessä olevista 16X16-makrolohkoista on sininen tausta, ja osa kolmen kotkan kuvasta piirretään tähän makrolohkoon. Kolmen kotkan osittaisten kuvien parempaan käsittelyyn H264 Useita alilohkoja jaetaan 16X16-makrolohkoihin.
Tällä tavalla kehyksen sisäisen pakkauksen jälkeen voidaan saada tehokkaampaa dataa. Alla oleva kuva on tulos yllä olevien makrolohkojen pakkaamisesta käyttämällä vastaavasti mpeg-2: ta ja H264: ää. Vasen puolisko on seurausta pakkauksesta MPEG-2-alilohkojaon jälkeen, ja oikea puolisko on seurausta H264-alilohkon pakkauksesta. Voidaan nähdä, että H264-jakomenetelmällä on enemmän etuja.
Kun makrolohko on jaettu, kaikki H264-kooderipuskurin kuvat voidaan ryhmitellä.
Kehysten ryhmittely
Videodataa varten on pääasiassa kahden tyyppistä datan redundanssia, toinen on datan redundanssi ajassa ja toinen avaruudessa. Niistä datan redundanssi ajassa on suurin. Puhutaan ensin videodatan ajan redundanssiongelmasta.
Miksi redundanssi on suurin? Olettaen, että kamera tallentaa 30 kuvaa sekunnissa, näiden 30 kehyksen tiedot liittyvät enimmäkseen toisiinsa. On myös mahdollista, että yli 30 datakehystä, kymmeniä kehyksiä tai satoja kehyksiä dataa liittyy erityisen läheisesti toisiinsa.
Näille hyvin läheisesti liittyville kehyksille meidän on itse asiassa tallennettava vain yksi kehys dataa, ja muut kehykset voidaan ennustaa tästä kehyksestä tiettyjen sääntöjen mukaisesti, joten videodata on eniten aikaa redundanssia.
Sen saavuttamiseksi, että asiaankuuluvat kehykset pakkaavat dataa ennustusmenetelmällä, on välttämätöntä ryhmitellä videokehykset. Joten miten määrittää, että tietyt kehykset liittyvät läheisesti toisiinsa ja voidaan ryhmitellä yhteen? Katsotaanpa esimerkkiä. Alla on kuvattu videokehys joukosta biljardipalloja liikkeessä. Biljardipallot pyörivät oikeasta yläkulmasta vasempaan alakulmaan.
H264-kooderi ottaa joka kerta kaksi vierekkäistä kehystä makrolohkojen vertaamiseksi kahden kehyksen samankaltaisuuden laskemiseksi. Kuten alla:
Makrolohkon skannauksen ja makrolohkon haun avulla voidaan havaita, että korrelaatio kahden kehyksen välillä on erittäin korkea. Lisäksi havaitaan, että tämän kehysryhmän korrelaatioaste on erittäin korkea. Siksi yllä olevat kehykset voidaan jakaa yhteen ryhmään. Algoritmi on: vierekkäisissä kuvissa yleensä erilaiset pikselit ovat vain 10%: n sisällä, kirkkausero ei ylitä 2% ja kromaattisuusero muuttuu vain 1%: n sisällä. Mielestämme tämä Kaaviot voidaan ryhmitellä yhteen.
Tällaisessa kehysryhmässä koodauksen jälkeen säilytämme vain ensimmäisen viestin täydelliset tiedot, ja muut kehykset lasketaan viittaamalla edelliseen kehykseen. Kutsumme ensimmäistä kehystä IDR / I-kehykseksi ja muita kehyksiä, joita kutsumme P / B-kehyksiksi, joten kutsumme koodattua datakehysryhmää GOP.
Liikkeen arviointi ja kompensointi
Kun kehykset on ryhmitelty H264-kooderiin, on tarpeen laskea kehysryhmän kohteiden liikevektorit. Otetaan esimerkkinä yllä oleva liikkuva biljardivideokehys, katsotaanpa, miten se laskee liikevektorin.
H264-kooderi ottaa ensin kaksi kuvaa videodataa puskurin otsikosta peräkkäin ja suorittaa sitten makrolohkoskannauksen. Kun jostakin kuvasta löytyy esine, haku suoritetaan toisen kuvan läheisyydessä (hakuikkunassa). Jos objekti löytyy toisesta kuvasta tällä hetkellä, objektin liikevektori voidaan laskea. Seuraava kuva näyttää biljardipallon sijainnin etsinnän jälkeen.
Yllä olevan kuvan biljardipallojen sijaintien välisen eron avulla voidaan laskea pöydän kuvan suunta ja etäisyys. H264 tallentaa pallon liikkeen etäisyyden ja suunnan kussakin kehyksessä vuorotellen, ja siitä tulee seuraava.
Kun liikevektori on laskettu, sama osa (eli vihreä osa) vähennetään kompensointidatan saamiseksi. Loppujen lopuksi meidän on vain pakattava ja tallennettava kompensointitiedot, ja sitten alkuperäinen kuva voidaan palauttaa purettaessa. Pakattujen tietojen on tallennettava vain pieni määrä tietoa. Seuraavasti:
Kutsumme liikevektoria ja kompensointia kehystenväliseksi pakkaustekniikaksi, joka ratkaisee videokehysten datan redundanssin ajoissa. Kehysten välisen pakkaamisen lisäksi datan pakkaus on suoritettava myös kehyksessä. Kehyksen sisäinen datan pakkaus ratkaisee paikkatietojen redundanssin. Nyt esitellään kehyksen sisäinen pakkaustekniikka.
Sisäinen ennustus
Ihmissilmä tunnistaa kuvan jossain määrin, se on hyvin herkkä matalan taajuuden kirkkaudelle eikä ole kovin herkkä korkean taajuuden kirkkaudelle. Siksi joidenkin tutkimusten perusteella tiedot, jotka eivät ole herkkiä ihmissilmille, voidaan poistaa kuvasta. Tällä tavalla ehdotetaan intra-ennustustekniikkaa.
H264: n kehyksen sisäinen pakkaus on hyvin samanlainen kuin JPEG. Kun kuva on jaettu makrolohkoihin, kukin makrolohko voidaan ennustaa 9 tilassa. Etsi ennustustila, joka on lähinnä alkuperäistä kuvaa.
Seuraava kuva on prosessi kunkin kuvan makrolohkon ennustamiseksi.
Sisäennusteen jälkeisen kuvan ja alkuperäisen kuvan vertailu on seuraava:
Sitten alkuperäinen kuva ja ennustettu kuva vähennetään jäännösarvon saamiseksi.
Tallenna sitten ennustetilan tiedot, jotka saimme aiemmin, jotta voimme palauttaa alkuperäisen kuvan dekoodauksen aikana. Vaikutus on seuraava:
Kehyksen sisäisen ja kehysten välisen pakkaamisen jälkeen, vaikka data onkin vähentynyt huomattavasti, optimoinnille on vielä tilaa.
Tee DCT jäännöstiedoille
Jäännöstiedoille voidaan suorittaa kokonaisluku erillinen kosini-muunnos datan korrelaation poistamiseksi ja datan pakkaamiseksi edelleen. Kuten alla olevassa kuvassa on esitetty, vasen puoli on alkuperäisten tietojen makrolohko ja oikea puoli on laskettujen jäännöstietojen makrolohko.
Jäännöstietojen makrolohko digitoidaan alla olevan kuvan mukaisesti:
DCT-muunnos suoritetaan jäännösdatan makrolohkolle.
Kun olet poistanut liittyvät tiedot, voimme nähdä, että tiedot pakataan edelleen.
Kun DCT on valmis, se ei riitä, ja häviöttömään pakkaamiseen tarvitaan CABAC.
CABAC
Yllä oleva kehyksen sisäinen pakkaus on häviöllinen pakkaustekniikka. Toisin sanoen, kun kuva on pakattu, sitä ei voida palauttaa kokonaan. CABAC on häviötön pakkaustekniikka.
Häviötön pakkaustekniikka voi olla kaikille tuttu on Huffman-koodaus, lyhyt koodi suurtaajuuksisille sanoille, pitkä koodi matalataajuisille sanoille tietojen pakkaamisen tarkoituksen saavuttamiseksi. MPEG-2: ssa käytetty VLC on tällainen algoritmi, otamme AZ: n esimerkkinä, A kuuluu suurtaajuustietoihin ja Z kuuluu matalataajuustietoihin. Katso, miten se tehdään.
CABAC on myös lyhyt koodi suurtaajuuksiselle tiedolle ja pitkä koodi matalataajuuksiselle tiedolle. Samalla se pakkaa kontekstin perusteella, mikä on paljon tehokkaampi kuin VLC. Vaikutus on seuraava:
Korvaa nyt AZ videokehyksellä, ja se näyttää seuraavalta.
Ylläolevasta kuvasta on ilmeistä, että häviötön pakkausjärjestelmä, joka käyttää CACBA: ta, on paljon tehokkaampi kuin VLC.
yhteenveto
Tässä vaiheessa olemme saaneet valmiiksi H264-koodausperiaatteen. Tässä artikkelissa käsitellään pääasiassa seuraavia seikkoja:
1. Jianyin esitteli joitain peruskäsitteitä H264: ssä. Kuten I / P / B-kehys, GOP.
2. Selitti yksityiskohtaisesti H264-koodauksen perusperiaatteet, mukaan lukien:
Makrolohkojako
Kuvien ryhmittely
Kehyksen sisäinen pakkaustekniikan periaate
Kehysten välisen pakkaustekniikan periaate.
DCT
CABAC-pakkausperiaate.
|
Kirjoita sähköpostiosoite saadaksesi yllätyksen
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albania
ar.fmuser.org -> arabia
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaidžanilainen
eu.fmuser.org -> baski
be.fmuser.org -> valkovenäläinen
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> katalaani
zh-CN.fmuser.org -> kiina (yksinkertaistettu)
zh-TW.fmuser.org -> Kiina (perinteinen)
hr.fmuser.org -> kroatia
cs.fmuser.org -> tšekki
da.fmuser.org -> tanska
nl.fmuser.org -> Dutch
et.fmuser.org -> viro
tl.fmuser.org -> filippiiniläinen
fi.fmuser.org -> suomi
fr.fmuser.org -> French
gl.fmuser.org -> galicialainen
ka.fmuser.org -> Georgian
de.fmuser.org -> saksa
el.fmuser.org -> Greek
ht.fmuser.org -> Haitin kreoli
iw.fmuser.org -> heprea
hi.fmuser.org -> Hindi
hu.fmuser.org -> Unkari
is.fmuser.org -> islanti
id.fmuser.org -> indonesia
ga.fmuser.org -> irlantilainen
it.fmuser.org -> Italian
ja.fmuser.org -> japani
ko.fmuser.org -> korea
lv.fmuser.org -> latvia
lt.fmuser.org -> Liettua
mk.fmuser.org -> makedonia
ms.fmuser.org -> malaiji
mt.fmuser.org -> maltalainen
no.fmuser.org -> Norja
fa.fmuser.org -> persia
pl.fmuser.org -> puola
pt.fmuser.org -> portugali
ro.fmuser.org -> Romania
ru.fmuser.org -> venäjä
sr.fmuser.org -> serbia
sk.fmuser.org -> slovakki
sl.fmuser.org -> Slovenian
es.fmuser.org -> espanja
sw.fmuser.org -> swahili
sv.fmuser.org -> ruotsi
th.fmuser.org -> Thai
tr.fmuser.org -> turkki
uk.fmuser.org -> ukraina
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kymri
yi.fmuser.org -> Jiddiš
FMUSER Wirless lähettää videota ja ääntä helpommin!
Ota yhteyttä
Osoite:
Nro 305 huone HuiLan-rakennus nro 273 Huanpu Road Guangzhou Kiina 510620
Kategoriat
Uutiskirje