FMUSER Wirless Transmituj wideo i audio łatwiejsze!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albański
ar.fmuser.org -> arabski
hy.fmuser.org -> Armeński
az.fmuser.org -> Azerbejdżański
eu.fmuser.org -> baskijski
be.fmuser.org -> białoruski
bg.fmuser.org -> bułgarski
ca.fmuser.org -> kataloński
zh-CN.fmuser.org -> chiński (uproszczony)
zh-TW.fmuser.org -> chiński (tradycyjny)
hr.fmuser.org -> chorwacki
cs.fmuser.org -> czeski
da.fmuser.org -> duński
nl.fmuser.org -> holenderski
et.fmuser.org -> estoński
tl.fmuser.org -> filipiński
fi.fmuser.org -> fiński
fr.fmuser.org -> francuski
gl.fmuser.org -> galicyjski
ka.fmuser.org -> gruziński
de.fmuser.org -> niemiecki
el.fmuser.org -> grecki
ht.fmuser.org -> kreolski haitański
iw.fmuser.org -> hebrajski
hi.fmuser.org -> hindi
hu.fmuser.org -> węgierski
is.fmuser.org -> islandzki
id.fmuser.org -> indonezyjski
ga.fmuser.org -> irlandzki
it.fmuser.org -> włoski
ja.fmuser.org -> japoński
ko.fmuser.org -> koreański
lv.fmuser.org -> łotewski
lt.fmuser.org -> litewski
mk.fmuser.org -> macedoński
ms.fmuser.org -> malajski
mt.fmuser.org -> maltański
no.fmuser.org -> norweski
fa.fmuser.org -> perski
pl.fmuser.org -> polski
pt.fmuser.org -> portugalski
ro.fmuser.org -> rumuński
ru.fmuser.org -> rosyjski
sr.fmuser.org -> serbski
sk.fmuser.org -> słowacki
sl.fmuser.org -> słoweński
es.fmuser.org -> hiszpański
sw.fmuser.org -> suahili
sv.fmuser.org -> szwedzki
th.fmuser.org -> Tajski
tr.fmuser.org -> turecki
uk.fmuser.org -> ukraiński
ur.fmuser.org -> Urdu
vi.fmuser.org -> wietnamski
cy.fmuser.org -> walijski
yi.fmuser.org -> jidysz
Przedmowa
Algorytm kompresji wideo H264 jest obecnie niewątpliwie najczęściej używaną i najpopularniejszą ze wszystkich technik kompresji wideo. Wraz z wprowadzeniem bibliotek open source, takich jak x264 / openh264 i ffmpeg, większość użytkowników nie musi już przeprowadzać zbyt wielu badań nad szczegółami H264, co znacznie obniża koszty osób używających H264.
Aby jednak dobrze wykorzystać H264, musimy jeszcze zrozumieć podstawowe zasady H264. Dzisiaj przyjrzymy się podstawowym zasadom H264.
Przegląd H264
Technologia kompresji H264 wykorzystuje głównie następujące metody kompresji danych wideo. zawierać:
Kompresja z predykcją wewnątrzklatkową rozwiązuje problem nadmiarowości danych przestrzennych.
Kompresja predykcji międzyramkowej (szacowanie i kompensacja ruchu) rozwiązuje problem nadmiarowości danych w dziedzinie czasu.
Całkowita dyskretna transformata kosinusowa (DCT), która przekształca korelację przestrzenną na nieistotne dane w dziedzinie częstotliwości, a następnie ją kwantyzuje.
Kompresja CABAC.
Skompresowana ramka jest podzielona na: ramkę I, ramkę P i ramkę B:
Klatka I: klatka kluczowa, wykorzystująca technologię kompresji wewnątrzramkowej.
Ramka P: ramka odniesienia do przodu, podczas kompresji, odnosi się tylko do poprzednio przetworzonej ramki. Użyj technologii kompresji dźwięku ramki.
Ramka B: dwukierunkowa ramka odniesienia. Podczas kompresji odnosi się do poprzedniej klatki i następnej klatki. Korzystanie z technologii kompresji międzyramkowej.
Oprócz ramek I / P / B istnieją również sekwencje obrazów GOP.
GOP: Pomiędzy dwiema klatkami I znajduje się sekwencja obrazów, aw sekwencji obrazów jest tylko jedna klatka I. Jak pokazano niżej:
Teraz szczegółowo opiszemy technologię kompresji H264.
Technologia kompresji H264
Podstawowa zasada działania H264 jest w rzeczywistości bardzo prosta, opiszmy pokrótce proces kompresji danych H264. Klatki wideo przechwycone przez kamerę (obliczane przy 30 klatkach na sekundę) są wysyłane do bufora kodera H264. Koder musi najpierw podzielić makrobloki dla każdego obrazu.
Jako przykład weźmy poniższe zdjęcie:
Makroblok partycji
H264 domyślnie używa obszaru 16X16 jako makrobloku i można go również podzielić na rozmiar 8X8.
Po podzieleniu makrobloku oblicz wartość piksela makrobloku.
Analogicznie obliczana jest wartość piksela każdego makrobloku w obrazie, a wszystkie makrobloki są przetwarzane w następujący sposób.
Podblok
H264 wykorzystuje makrobloki 16X16 dla stosunkowo płaskich obrazów. Jednak w celu uzyskania wyższego stopnia kompresji mniejsze podbloki można również podzielić na makrobloki 16X16. Rozmiar podbloku może wynosić 8X16, 16X8, 8X8, 4X8, 8X4, 4X4, co jest bardzo elastyczne.
Na powyższym obrazku większość makrobloków 16X16 w czerwonej ramce ma niebieskie tło, a część obrazu trzech orłów jest narysowana w tym makrobloku. Aby lepiej przetworzyć częściowe obrazy trzech orłów, H264 Wiele podbloków podzielono na makrobloki 16X16.
W ten sposób, po kompresji wewnątrzramkowej, można uzyskać wydajniejsze dane. Poniższy rysunek jest wynikiem kompresji powyższych makrobloków przy użyciu odpowiednio mpeg-2 i H264. Lewa połowa jest wynikiem kompresji po podziale na podblok MPEG-2, a prawa połowa jest wynikiem kompresji podbloku H264. Widać, że metoda podziału H264 ma więcej zalet.
Po podzieleniu bloku makr, wszystkie obrazy w buforze kodera H264 można pogrupować.
Grupowanie ramek
W przypadku danych wideo występują głównie dwa typy nadmiarowości danych, jeden to redundancja danych w czasie, a drugi to redundancja danych w przestrzeni. Wśród nich największa jest redundancja danych w czasie. Porozmawiajmy najpierw o problemie redundancji czasu danych wideo.
Dlaczego nadmiar czasu jest największy? Zakładając, że kamera rejestruje 30 klatek na sekundę, dane z tych 30 klatek są w większości powiązane. Możliwe jest również, że ponad 30 ramek danych, dziesiątki ramek lub setki ramek danych jest szczególnie ściśle powiązanych.
W rzeczywistości dla tych bardzo ściśle powiązanych ramek musimy zapisać tylko jedną ramkę danych, a inne klatki można przewidzieć na podstawie tej ramki zgodnie z określonymi regułami, więc dane wideo mają największą nadmiarowość czasową.
Aby to osiągnąć, odpowiednie klatki kompresują dane metodą predykcji, konieczne jest pogrupowanie klatek wideo. Jak więc ustalić, że pewne klatki są blisko spokrewnione i można je grupować? Spójrzmy na przykład. Poniżej znajduje się przechwycona klatka wideo przedstawiająca grupę w ruchu kul bilardowych. Kule bilardowe toczą się z prawego górnego rogu do lewego dolnego rogu.
Koder H264 za każdym razem pobierze dwie sąsiednie ramki, aby porównać makrobloki w celu obliczenia podobieństwa tych dwóch ramek. Jak pokazano niżej:
Poprzez skanowanie makrobloków i wyszukiwanie makrobloków można stwierdzić, że korelacja między dwiema ramkami jest bardzo wysoka. Ponadto stwierdzono, że stopień korelacji tej grupy ramek jest bardzo wysoki. Dlatego powyższe ramki można podzielić na jedną grupę. Algorytm jest następujący: na sąsiednich obrazach piksele, które są ogólnie różne, mieszczą się w granicach 10%, różnica jasności nie przekracza 2%, a różnica chromatyczności zmienia się tylko w granicach 1%. Myślimy, że wykresy można grupować razem.
W takiej grupie ramek po zakodowaniu zachowujemy tylko pełne dane z pierwszego postu, a pozostałe ramki obliczamy odwołując się do poprzedniej ramki. Pierwszą ramkę ramki IDR / I nazywamy ramką, a inne ramki nazywamy ramką P / B, więc grupę zakodowanych ramek danych nazywamy GOP.
Szacowanie ruchu i kompensacja
Po zgrupowaniu ramek w koderze H264 należy obliczyć wektory ruchu obiektów w grupie ramek. Biorąc jako przykład powyższą ruchomą bilardową klatkę wideo, przyjrzyjmy się, jak oblicza ona wektor ruchu.
Koder H264 najpierw pobiera kolejno dwie klatki danych wideo z nagłówka bufora, a następnie wykonuje skanowanie makrobloków. W przypadku znalezienia obiektu na jednym ze zdjęć wyszukiwanie odbywa się w pobliżu drugiego zdjęcia (w oknie wyszukiwania). Jeśli obiekt znajduje się w tym momencie na innym obrazie, można obliczyć wektor ruchu obiektu. Poniższy rysunek przedstawia pozycję kuli bilardowej po przeszukaniu.
Poprzez różnicę między położeniami kul bilardowych na powyższym obrazku można obliczyć kierunek i odległość obrazu stołu. H264 rejestruje po kolei odległość i kierunek ruchu piłki w każdej klatce i wygląda następująco.
Po obliczeniu wektora ruchu ta sama część (czyli część zielona) jest odejmowana w celu uzyskania danych kompensacji. W końcu musimy tylko skompresować i zapisać dane kompensacji, a następnie oryginalny obraz można przywrócić podczas dekodowania. Skompresowane dane muszą zawierać tylko niewielką ilość danych. Następująco:
Wektor ruchu i kompensację nazywamy technologią kompresji międzyklatkowej, która rozwiązuje problem nadmiarowości danych w klatkach wideo w czasie. Oprócz kompresji międzyramkowej kompresja danych musi być również wykonywana w ramce. Kompresja danych wewnątrzramkowych rozwiązuje nadmiarowość danych przestrzennych. Teraz przedstawimy technologię kompresji wewnątrzramkowej.
Przewidywanie Intra
Oko ludzkie ma pewien stopień rozpoznawania obrazu, jest bardzo wrażliwe na jasność o niskiej częstotliwości i nie jest zbyt wrażliwe na jasność o wysokiej częstotliwości. Dlatego, na podstawie niektórych badań, dane, które nie są wrażliwe na ludzkie oczy, można usunąć z obrazu. W ten sposób proponowana jest technologia przewidywania intra.
Kompresja wewnątrzklatkowa H264 jest bardzo podobna do JPEG. Po podzieleniu obrazu na makrobloki, każdy makroblok można przewidzieć w 9 trybach. Znajdź tryb przewidywania, który jest najbliższy oryginalnemu obrazowi.
Poniższy obraz przedstawia proces przewidywania każdego makrobloku na całym obrazie.
Porównanie obrazu po przewidywaniu intra z obrazem oryginalnym wygląda następująco:
Następnie odejmuje się obraz pierwotny i obraz przewidywany w czasie, aby otrzymać wartość rezydualną.
Następnie zapisz informacje o trybie przewidywania, które otrzymaliśmy wcześniej, abyśmy mogli przywrócić oryginalny obraz podczas dekodowania. Efekt jest następujący:
Po kompresji wewnątrzklatkowej i międzyklatkowej, chociaż ilość danych jest znacznie zmniejszona, wciąż jest miejsce na optymalizację.
Wykonaj DCT na pozostałych danych
Pozostałe dane mogą zostać poddane całkowitej dyskretnej transformacji kosinusowej w celu usunięcia korelacji danych i dalszej kompresji danych. Jak pokazano na poniższym rysunku, lewa strona to makroblok oryginalnych danych, a prawa strona to makroblok obliczonych danych resztkowych.
Makroblok pozostałych danych jest digitalizowany, jak pokazano na poniższym rysunku:
Konwersja DCT jest wykonywana na resztkowym makrobloku danych.
Po usunięciu powiązanych danych widzimy, że dane są dalej kompresowane.
Po zakończeniu DCT to nie wystarczy, a CABAC jest potrzebny do bezstratnej kompresji.
KABAK
Powyższa kompresja wewnątrzklatkowa jest techniką kompresji stratnej. Innymi słowy, po skompresowaniu obrazu nie można go całkowicie przywrócić. CABAC to technologia bezstratnej kompresji.
Technologia kompresji bezstratnej może być najbardziej znana każdemu to kodowanie Huffmana, krótki kod dla słów o wysokiej częstotliwości, długi kod dla słów o niskiej częstotliwości, aby osiągnąć cel kompresji danych. VLC używany w MPEG-2 jest tego rodzaju algorytmem, bierzemy AZ jako przykład, A należy do danych o wysokiej częstotliwości, a Z do danych o niskiej częstotliwości. Zobacz, jak to się robi.
CABAC to także krótki kod dla danych o wysokiej częstotliwości i długi kod dla danych o niskiej częstotliwości. Jednocześnie kompresuje się na podstawie kontekstu, co jest znacznie wydajniejsze niż VLC. Efekt jest następujący:
Teraz zamień AZ na ramkę wideo i będzie wyglądać następująco.
Z powyższego obrazu jasno wynika, że schemat bezstratnej kompresji wykorzystujący CACBA jest znacznie wydajniejszy niż VLC.
streszczenie
W tym momencie zakończyliśmy zasadę kodowania H264. W tym artykule omówiono głównie następujące kwestie:
1. Jianyin przedstawił kilka podstawowych pojęć w H264. Takich jak ramka I / P / B, GOP.
2. Szczegółowo wyjaśnił podstawowe zasady kodowania H264, w tym:
Podział makr
Grupowanie obrazów
Zasada technologii kompresji wewnątrzramkowej
Zasada technologii kompresji międzyramkowej.
DCT
Zasada kompresji CABAC.
|
Wpisz e-mail, aby otrzymać niespodziankę
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albański
ar.fmuser.org -> arabski
hy.fmuser.org -> Armeński
az.fmuser.org -> Azerbejdżański
eu.fmuser.org -> baskijski
be.fmuser.org -> białoruski
bg.fmuser.org -> bułgarski
ca.fmuser.org -> kataloński
zh-CN.fmuser.org -> chiński (uproszczony)
zh-TW.fmuser.org -> chiński (tradycyjny)
hr.fmuser.org -> chorwacki
cs.fmuser.org -> czeski
da.fmuser.org -> duński
nl.fmuser.org -> holenderski
et.fmuser.org -> estoński
tl.fmuser.org -> filipiński
fi.fmuser.org -> fiński
fr.fmuser.org -> francuski
gl.fmuser.org -> galicyjski
ka.fmuser.org -> gruziński
de.fmuser.org -> niemiecki
el.fmuser.org -> grecki
ht.fmuser.org -> kreolski haitański
iw.fmuser.org -> hebrajski
hi.fmuser.org -> hindi
hu.fmuser.org -> węgierski
is.fmuser.org -> islandzki
id.fmuser.org -> indonezyjski
ga.fmuser.org -> irlandzki
it.fmuser.org -> włoski
ja.fmuser.org -> japoński
ko.fmuser.org -> koreański
lv.fmuser.org -> łotewski
lt.fmuser.org -> litewski
mk.fmuser.org -> macedoński
ms.fmuser.org -> malajski
mt.fmuser.org -> maltański
no.fmuser.org -> norweski
fa.fmuser.org -> perski
pl.fmuser.org -> polski
pt.fmuser.org -> portugalski
ro.fmuser.org -> rumuński
ru.fmuser.org -> rosyjski
sr.fmuser.org -> serbski
sk.fmuser.org -> słowacki
sl.fmuser.org -> słoweński
es.fmuser.org -> hiszpański
sw.fmuser.org -> suahili
sv.fmuser.org -> szwedzki
th.fmuser.org -> Tajski
tr.fmuser.org -> turecki
uk.fmuser.org -> ukraiński
ur.fmuser.org -> Urdu
vi.fmuser.org -> wietnamski
cy.fmuser.org -> walijski
yi.fmuser.org -> jidysz
FMUSER Wirless Transmituj wideo i audio łatwiejsze!
Kontakt
Adres:
Nr 305 Pokój HuiLan Budynek nr 273 Huanpu Road Guangzhou Chiny 510620
Kategorie
Newsletter