Elastyczne porządkowanie makrobloków
Elastyczne porządkowanie makrobloków lub FMO to jedno z kilku narzędzi odporności na błędy zdefiniowanych w profilu Baseline standardu kompresji wideo H.264/MPEG-4 AVC .
Opis
Jedną z cech standardu H.264/AVC jest możliwość dzielenia obrazu na regiony zwane segmentami, z których każdy zawiera sekwencję makrobloków i może być dekodowany niezależnie od innych segmentów. Te makrobloki są przetwarzane w kolejności skanowania, zwykle od lewej do prawej, zaczynając od góry. Ramka może składać się z pojedynczego wycinka lub wielu wycinków w celu przetwarzania równoległego i odporności na błędy, ponieważ błędy w wycinku rozprzestrzeniają się tylko w tym wycinku.
Elastyczne porządkowanie makrobloków zwiększa to, umożliwiając grupowanie i wysyłanie makrobloków w dowolnym kierunku i kolejności, a także może być używane do tworzenia ukształtowanych i nieciągłych grup plasterków. W ten sposób FMO pozwala na bardziej elastyczne decydowanie, do jakich makrobloków plasterków należą, w celu rozłożenia błędów i powstrzymania błędów w jednej części ramki przed narażeniem innej części ramki. FMO opiera się na innym narzędziu odporności na błędy, arbitralnym porządkowaniu wycinków , ponieważ każdą grupę wycinków można wysłać w dowolnej kolejności i opcjonalnie można ją dekodować w kolejności odbioru, zamiast w zwykłej kolejności skanowania.
Poszczególne plasterki nadal muszą być ciągłymi poziomymi regionami makrobloków, ale w przypadku grup plasterków FMO kompensacja ruchu może odbywać się w dowolnych ciągłych makroblokach w całej grupie; w rzeczywistości każda grupa warstw jest traktowana jako jeden lub więcej przylegających do siebie warstw o kształcie dla celów kompensacji ruchu.
Prawie wszystkie kodeki wideo umożliwiają kodowanie regionu zainteresowania , w którym określone makrobloki są ukierunkowane na uzyskanie mniej więcej jakości, czego kanonicznym przykładem jest głowa prezentera, która ma wyższy stosunek bitów niż tło. Główną zaletą FMO w połączeniu z kodowaniem RoI jest możliwość zapobiegania rozprzestrzenianiu się błędów w jednym regionie do innego regionu. Na przykład, jeśli wycinek tła zostanie utracony, tło może być uszkodzone przez jakiś czas, ale twarz prezentera nie zostanie naruszona, a regularne odświeżanie najważniejszego wycinka w celu nadrobienia ewentualnych błędów staje się prostsze.
Plastry używane z FMO nie są statyczne i mogą się zmieniać wraz ze zmianą okoliczności, takich jak śledzenie poruszającego się obiektu. Struktura zwana MBAmap odwzorowuje każdy makroblok na grupę plasterków i może być aktualizowana w dowolnym momencie, z kilkoma zdefiniowanymi domyślnymi wzorcami, takimi jak Slice Interleaving (grupy na przemian w każdej linii skanowania) lub Scattered Slices (grupy naprzemiennie w każdym bloku). Dzięki tym wzorcom FMO pozwala zachować lepiej zlokalizowany kontekst wizualny, dzięki czemu algorytmy ukrywania błędów mogą zrekonstruować brakującą treść.
Pewne zaawansowane techniki kodowania mogą symulować niektóre zalety FMO. W H.264/AVC ramki P (predicted) i B (bipredicted) mogą zawierać I (intra) bloki, które przechowują niezależny obraz. Zamiast tworzyć wycinek w celu okresowego odświeżania ramek I lub IDR, bloki I mogą być wysyłane w dowolnym pożądanym wzorze, podczas gdy przewidywane bloki tworzą resztę obrazu. Chociaż błędy będą nadal rozprzestrzeniać się poziomo, bloki I mogą być wysyłane we wzorach, takich jak faworyzowanie interesującego obszaru lub rozproszonej szachownicy, aby symulować odświeżenie wycinka kształtu. Dzięki dwukierunkowej komunikacji z klientem utracone wycinki można odświeżyć natychmiast po wykryciu, ale nie jest to wykonalne w przypadku szerszej transmisji.
Kompromisy
FMO jest dozwolone tylko w profilach Baseline i Extended. Znacznie bardziej powszechne profile Constrained Baseline, Main i wszystkie High nie obsługują tego, a oprogramowanie, które może je tworzyć lub dekodować, jest rzadkie. Używają go niektóre jednostki do wideokonferencji; w przeciwnym razie podstawowym wsparciem jest oprogramowanie referencyjne JM.
Używanie wielu plasterków na obraz zawsze obniża wydajność kodowania, a FMO może jeszcze bardziej na to wpłynąć. Im bardziej rozłożone są plasterki, tym gorzej, przy czym najgorsze są wzory szachownicy (patrz Rozproszone plastry poniżej). Cele rozłożenia błędów i wydajności kodowania są bezpośrednio sprzeczne. FMO umożliwia interpredykcję dla bezpośrednio sąsiadujących wycinków w tej samej grupie, skutecznie sprawiając, że ciągły region zachowuje się prawie jak pojedynczy wycinek; w niektórych sytuacjach, gdy grupy wycinków są kształtowane w region zainteresowania, może to faktycznie nieznacznie poprawić wydajność w porównaniu z prostymi wycinkami standardowymi, ale korzyść jest rzadka i niewielka. Z tego powodu FMO powinno być używane tylko tam, gdzie utrata pakietów jest powszechna i oczekiwana.
Oprócz zwiększonej złożoności kodowania i dekodowania oraz niższej wydajności, odblokowywanie w pętli stwarza również problem: wycinki mogą być wysyłane w dowolnej kolejności, ale debloker wymaga wszystkich plików . Albo narzędzie odblokowujące musi działać w wielu przejściach, gdy odbierany jest kolejny wycinek, albo cały obraz musi zostać zbuforowany przed rozpoczęciem odblokowywania, co może powodować dodatkowe opóźnienie, jeśli wycinki są opóźnione na tyle, że wycinki następnego obrazu zaczną pojawiać się jako pierwsze.
Szczegóły dotyczące wdrożenia
Podczas korzystania z FMO obraz można podzielić na różne wzorce skanowania makrobloków, z kilkoma wbudowanymi wzorcami zdefiniowanymi w specyfikacji, sygnalizowanymi jako 0-5 w jednostce slice_group_map_type , oraz jedną opcją obejmującą całą jawnie przypisaną MBAmap, sygnalizowaną jak 6. W każdej chwili można przesłać typ mapy oraz nową mapę MBAmap.
- Przeplatane grupy plasterków, typ 0: Każdy wiersz to inny plasterek, naprzemiennie tyle razy, ile grup plasterków. Dozwolone są tylko poziome wektory predykcji.
- Rozproszone lub rozproszone grupy plasterków, typ 1: Każdy makroblok jest innym plasterkiem. Dzięki dwóm grupom plasterków tworzy wzór szachownicy; cztery lub więcej grup również przeplata rzędy, a przy sześciu grupach plasterków żaden makroblok nigdy nie dotknie innego z tej samej grupy plasterków w dowolnym kierunku, maksymalizując możliwości ukrycia błędów. Żadna prognoza wektora nie jest możliwa.
- Grupy pierwszego planu, typ 2: Określanie tylko lewego górnego i prawego dolnego rogu statycznych prostokątów w celu utworzenia obszarów zainteresowania . Wszystkie obszary nieuwzględnione są przydzielane do grupy końcowej. Przewidywanie wektorów jest możliwe w każdym prostokącie iw tle. Zachowanie nakładających się prostokątów jest niezdefiniowane, ale w oprogramowaniu referencyjnym używana jest ostatnia grupa plasterków do zdefiniowania.
- Zmieniające się grupy, typy 3-5: Podobne do typu 2, ale typy dynamiczne, które rosną i kurczą się cyklicznie. Trzeba znać tylko tempo wzrostu, kierunek i pozycję w cyklu.
- Grupy jawne, typ 6: Przesyłana jest cała mapa MBA z grupami ułożonymi w dowolny sposób według życzenia kodera. Przewidywanie wektorów jest możliwe w obrębie dowolnych sąsiadujących regionów tej samej grupy.
(Na powyższym obrazie „Typ 0” pokazuje standardowe wycinki H.264, a nie przeplatane grupy plasterków.)
- Bibliografia _ Horowitz, Michał. „FMO: elastyczne porządkowanie makrobloków” .
- ^ „Odporność na błędy i ukrywanie w H.264 MPEG-4 część 10” .
- ^ a b c Wenger, Stephan; Horowitz, Michał. „FMO 101” .
- ^ „Oprogramowanie referencyjne H.264” .
- Bibliografia _ Sullivan, Gary. „Projekt zalecenia ITU-T i ostateczny projekt międzynarodowego standardu wspólnej specyfikacji wideo (ITU-T Rec. H.264 / ISO / IEC 14496-10 AVC)” (PDF) .