Skalowalny algorytm estymacji ruchu dla systemów rozproszonych Adam Łuczak, Jacek Konieczny Katedra Telekomunikacji Multimedialnej i Mikroelektroniki, Wydział Elektroniki i Telekomunikacji, Politechnika Poznańska, web: www.multimedia.edu.pl
Wprowadzenie Cel prac: Algorytm estymacji ruchu jest najbardziej czasochłonną częścią hybrydowych algorytmu kompresji sygnałów wizyjnych takich jak MPEG-2, H.263, AVC/H.264 oraz wielu innych. Estymacja ruchu przyczynia się do znacznego zużycia energii przez układ kodera wizyjnego co jest krytyczne w urządzeniach przenośnych, które nie maja dostępu do stałego źródła zasilania. Estymacja ruchu jest także zadaniem trudnym dla współczesnych procesorów nawet tych o dużej mocy obliczeniowej. Cel prac: Zaproponowanie modularnego skalowalnego algorytmu pozwalającego na zastosowanie w systemach przenośnych (małe zużycie energii) lub w stacjonarnych systemach kompresji (duża wydajność i dokładność). Nie było celem pracy znalezienie algorytmu estymacji !
Cel – skalowalny model estymatora Skalowalność wydajności i zużycia energii Skalowalność wielkości układu
Architektura estymatora ruchu Trzy główne moduły sprzętowe: blok filtracji wstępnej, blok estymacji ruchu z dokładnością do 1 punktu obrazu, blok estymacji ruchu z dokładnością podpunktową.
Blok filtracji wstępnej Cel stosowania: zmniejszenie wpływu szumu w sygnale wizyjnym na jakość estymacji. Algorytm filtracji: - prosty algorytm filtracji filtrem FIR w czasie (obejmuje 3 ramki), - decyzja o filtracji podejmowana dla każdego bloku 8x8 niezależnie.
Zastosowany algorytm estymacji ruchu Implementowany algorytm: PHS (ang. Predict Hexagon Search) Główne cechy; - algorytm PHS umożliwia wyznaczenie wektora ruchu w niewielkiej liczbie korków (30-60) - posiada regularną strukturę.
Algorytm estymacji ruchu
Estymacji ruchu podpunktowa Zwiększanie dokładności realizowane przez niezależne moduły podłączone potokowo Każdy moduł umożliwia skonfigurowanie: - kryterium wyboru wektora ruchu, - metody interpolacji obrazu.
Realizacja zaproponowanej architektury Implementacja; Zaproponowane rozwiązanie zostało zaimplementowane w języku Verilog. W implementacji uwzględniono cechy układów Xilinx. Realizacja sprzętowa jest przenośna pomiędzy układami FPGA firmy XILINX (uwzględniono cechy pamięci BRAM oraz pamięci rozproszonej DRAM). Weryfikacja: Oszacowano wielkość układu pod względem wielkości i wydajności. Przetestowano poprawność generowanych wyników w symulatorze Active-HDL.
Weryfikacja układu estymacji ruchu
Wyniki syntezy układu
Wydajność układu Częstotliwość taktowania pokazana w tabeli umożliwia estymację z pełną precyzją. Możliwe jest działanie układu przy częstotliwościach niższych.
Podział na kilka jednostek obliczeniowych Zrealizowano przykładową konfigurację opartą o 6 układów programowalnych. Pozwala ona na estymację ruchu w czasie rzeczywistym sekwencji HDTV.
Platforma testowa System złożony z 8 układów Spartan-3 1000 oraz płyty a układem Virtex-II przechwytującym sekwencje wizyjne HDTV poprzez szeregowe wejście HD-SDI
Podsumowanie W pracy zaprezentowano autorski skalowalny algorytm umożliwiający realizację procesu estymacji ruchu w czasie rzeczywistym. Autorzy przedstawili rozwiązanie cechujące się silnie modułową strukturą oraz możliwością płynnego doboru częstotliwości taktowania układu przy zachowaniu stałej prędkości ramkowej przetwarzanego sygnału wizyjnego. Głównym zastosowaniem algorytmu są mobilne systemy kompresji sygnałów wizyjnych. Możliwe jest także stosowanie zaproponowanego rozwiązania w systemach rozproszonych składających się z wielu małych jednostek obliczeniowych.