zobacz
Transkrypt
zobacz
Odtwarzanie i kompresja wideo dr inż. Piotr Steć Rodzaje plików wideo Kontenery AVI – Audio Video Interleave WMV – Windows Media Video MOV – QuickTime MKV – Matroska Standardy kompresji MPEG – Motion Pictures Expert Group RV – Real Video 1 Co to jest kontener? Nie jest to standard kompresji Definicja struktury pliku Umożliwia przechowywanie wielu strumieni Każdy strumień może być poddany kompresji innym algorytmem Format AVI Wewnętrzna struktura to RIFF (Resource Interchange File Format) Składa się z bloków zawierających różnego rodzaju dane Może przechowywać jeden strumień wideo i jeden strumień audio Obraz i dźwięk mogą być zakodowane w dowolny sposób Sposób kompresji jest identyfikowany poprzez czteroznakowe kody 4CC (n.p. DX50 – DivX 5.0) 2 Odtwarzanie AVI Windows Media Player Inne odtwarzacze Odtwarzacze DirectShow BestPlayer AllPlayer Koala Player Itp. Odtwarzacze samodzielne VideoLAN Player – posiada własne dekodery wielu formatów (www.videolan.org) ?? (są wielką rzadkością, większość używa mechanizmów Microsoft) 3 Format QuickTime Kontener opracowany przez firmę Apple Otwarta architektura formatu pozwala na zastosowanie wielu kodeków Typy danych przechowywane w kontenerze: wideo, obrazy statyczne, duszki (sprites), grafika wektorowa, dźwięk wielokanałowy, MIDI, obiekty 3D, panoramy i tekst Odtwarzacz QuickTime http://www.quicktime.com/ 4 RealVideo Format opracowany przez RealNetworks Przeznaczony głównie do strumieniowej transmisji przez Internet www.real.com/ Podstawowe pojęcia związane z wideo pod Windows Kodek DirectShow Nakładka 5 Kodek Ko-der, Dek-oder Moduł programowy odpowiedzialny za kodowanie i dekodowanie strumienia danych (audio lub wideo) System może odtworzyć tylko takie strumienie, dla których posiada odpowiednie kodeki Jak sprawdzić zainstalowane kodeki? Panel Sterowania Dźwięki i urządzenia audio Właściwości odpowiedniej grupy kodeków 6 Lista kodeków wideo DirectShow Część biblioteki DirectX Odpowiada za odtwarzanie plików multimedialnych Oparty na systemie filtrów Z filtrów można budować grafy przetwarzające strumienie danych 7 Struktura DirectShow Przykładowy graf filtrów n.p. VobSub 8 Nakładka (Overlay) Specjalny tryb pracy karty graficznej (musi być obsługiwany sprzętowo) Fragment obrazu może być wyświetlany w zupełnie innym trybie graficznym niż pozostałą część Zwykle używany do wyświetlania wideo, nakładka pracuje w trybie kolorów YUV (takim jak w pliku wideo) dzięki czemu nie jest wymagana dodatkowa konwersja Działanie nakładki Pulpit: 24b/piksel RGB Nakładka: 16b/piksel YUV pamięć ekranu pamięć nakładki 9 Działanie nakładki Wideo pełnoekranowe Tryb pozwalający wyświetlać nakładkę na pełnym ekranie pomocniczym (n.p. TV) nVidia – wideo pełnoekranowe ATI – tryb teatralny Większość odtwarzaczy nie potrafi wyświetlać napisów na telewizorze (napisy nie są częścią obrazu a etykietą nałożoną na okno programu) 10 Kiedy napisy będą wyświetlane na TV? napisy nakładka Napisy nie są częścią obrazu, nie będą widoczne pulpit napisy nakładka Napisy wklejone w pulpit obraz będą widoczne Napisy są wklejane w film przez VideoLAN Player lub filtr VobSub Niewiele odtwarzaczy jest w stanie dokonać tej operacji Kompresja wideo Kompresja MPEG Kodeki wideo Indeo Cinepack DivX Xvid M-JPEG DV 11 Kompresja MPEG Standard kompresji opracowany przez Moving Picture Experts Group Format asymetryczny – potrzeba więcej czasu na kompresję niż dekompresję obrazu Wykorzystuje kompresję przestrzenną (opartą o DCT, podobną do JPEG) i czasową Kompresja MPEG Strumień MPEG składa się ze zbiorów obrazów określanych jako GOP (Group of Pictures) Każdy GOP (typowo 8 do 24 klatek) zawiera tylko jedną klatkę zakodowaną w całości, tzw. klatkę kluczową (I-frame) Pozostałe klaki są zakodowane czasowo i reprezentują tylko zmiany w obrazie 12 Struktura strumienia MPEG Nazwa struktury Nazwa angielska Opis Funkcja, przenoszona informacja Sekwencja Sequence Film, program telewizyjny, itp. Rozdzielczość, profil kodera Grupa obrazów Group of pictures (GOP) Grupa obrazów, którą można zdekodować samodzielnie Dostęp do danych Obraz Picture, frame Obraz lub 2 pola Typ obrazu, znacznik czasu Warstwa, grupa bloków Slice, group of blocks (GOB) Wiersz makrobloków lub jego część Resynchronizacja w przypadku zakłóceń Makroblok Macroblock 16x16 punktów Wektory ruchu, parametry kwantyzatora Blok Block 8x8 punktów Współczynniki DCT Kompresja MPEG – kodowanie klatki kluczowej Obraz jest dzielony na bloki 8x8 lub 16x16 pikseli Każdy blok jest poddawany transformacie DCT Współczynniki transformaty są kwantowane (zaokrąglane do pewnych ustalonych wartości) Skwantowane współczynniki są kodowane bezstratnie 13 Kompresja MPEG – kodowanie międzyobrazowe Dwa rodzaje klatek kodowanych międzyobrazowo (na podstawie różnic) Klatki P (predictive) dekodowane są tylko na podstawie obrazów poprzednich Klatki B (bidirectionally-predictive) dekodowane są z użyciem obrazów poprzednich i następnych Kompresja MPEG – kodowanie międzyobrazowe Numer obrazu Typ obrazu 1 2 3 4 5 6 7 8 I B B P B B B P 14 Klatki kluczowe a kompresja Mała liczba klatek kluczowych: Większy stopień kompresji Błędy utrzymują się dłużej Problemy z przewijaniem Duża liczba klatek kluczowych: Lepsza jakość obrazu Łatwiejsze przewijanie Duży rozmiar pliku Kompresja MPEG – estymacja ruchu Jeśli obiekt się porusza na filmie, to powoduje powstawanie dużych różnic w kolejnych klatkach (zła kompresja) Przy znanym przesunięciu obiektu można policzyć różnicę pomiędzy bieżącą klatką a klatką poprzednią z uwzględnieniem przesunięcia (mniejsza różnica – lepsza kompresja) 15 Kompresja MPEG – estymacja ruchu różnica bez kompensacji ruchu klatka 1 klatka 2 różnica z kompensacją ruchu klatka 1 klatka 2 Kompresja MPEG – estymacja ruchu bieżący makroblok klatka n-1 wektor ruchu najlepsze dopasowanie klatka n 16 Kompresja MPEG 3000 kbps Kompresja MPEG 1500 kbps 17 Kompresja MPEG 500 kbps Kompresja MPEG 3000 kbps 18 Kompresja MPEG 64 kbps MPEG – 1 Standard wprowadzony w 1993 r. Szybkość transmisji obrazu do 1,5 Mb/s Szybkość transmisji dźwięku 192 kb/s Rozdzielczość obrazu 352x288, 25klatek/s 19 MPEG – 2 Rozdzielczości 720x576 i 1280x720 (PAL) do 50 klatek/s Dźwięk o jakości CD Możliwość dopasowywania kompresji do pasma transmisyjnego Dekompresja nie wymaga dużych mocy obliczeniowych Standard używany przez cyfrową telewizję satelitarną i kablową, oraz na płytach DVD MPEG – 4 Zatwierdzony w 1998 r. Standard definiujący kodowanie i odtwarzanie wielu mediów wizualnych: Wideo Obrazów statycznych Modeli 3D Wideo-konferencji Transmisję strumieniową 20 MPEG – 4 Pozwala na obiektowe kodowanie elementów obrazu Obiekty mogą być kodowane niezależnie i przesyłane z różną przepustowością w różnych kanałach transmisyjnych Skalowalność transmisji Możliwość interakcji użytkownika Technika duszków w MPEG – 4 Tło i obiekt pierwszoplanowy mogą być zakodowane niezależne 21 MPEG – 7 Standard opisu danych audio-wizualnych w środowiskach multimedialnych Jest niezależny od sposobu kodowania i zapisu danych Może być używany zarówno do opisu danych analogowych jak i cyfrowych zakodowanych w MPEG – 4 Oferuje wiele poziomów abstrakcji opisu Składowe opisów w MPEG – 7 Opis utworu i jego powstania Sposób użytkowania Format zapisu Opis struktury Właściwości niskiego poziomu Relacje pomiędzy obiektami Indeksy i informacje pomagające w przeszukiwaniu Informacje o zbiorach obiektów Sposób interakcji użytkownika z zawartością zbioru 22 Opracowywane standardy MPEG MPEG – 21 Dostęp do mediów Zarządzanie multimediami Rozpowszechnianie Ochrona danych MPEG – A MAF – Multimedia Application Formats, podejście do standaryzacji formatów przechowywania danych z użyciem istniejących wersji MPEG Adresy związane z MPEG http://www.chiariglione.org/mpeg/ http://www.mpeg.org/ http://www.robertsdvd.com/ 23 Kodeki wideo Indeo Cinepack DivX Xvid M-JPEG DV Indeo Opracowany przez firmę Intel Do kompresji używa próbkowaniu koloru, kwantyzacji wektorowej i kodowania o zmiennej długości słowa (RLE) Skalowalny – ilość klatek/s zależy od mocy obliczeniowej Niezbyt szybki 24 Cinepack Opracowany przez firmę SuperMac Technology Oparty na kwantyzacji wektorowej, opracowaniu w celu kodowania 24-bitowego obrazu o rozdzielczości 320x240, odtwarzanego z dysku CD-ROM o pojedynczej prędkości Dobra jakość obrazu Bardzo wolny: kodowanie 300 razy dłuższe niż dekompresja DivX Kodek bazujący na standardzie MPEG – 4 Pozwala uzyskiwać duże stopnie kompresji przy zachowaniu dobrej jakości obrazu Rozwinął się jako alternatywa dla DVD, obecnie produkt komercyjny Istnieją implementacje na większość platform programowych i sprzętowych (również stacjonarne odtwarzacze) 25 Xvid Darmowa (GNU) konkurencja kodeka DivX Bazuje na MPEG – 4, w dużej części kompatybilna z DivX Istnieje wiele alternatywnych implementacji kodeka, projekt wciąż rozwijany Istnieją implementacje dla wielu systemów operacyjnych i na platformy sprzętowe http://www.xvid.org/ M-JPEG Każda klatka filmu kodowana niezależnie Kompresja jak w standardzie JPEG Stosowany do kompresji materiału, który ma być poddawany edycji 26 DV Kodek stosowany w cyfrowych kamerach wideo Kompresja oparta o DCT Każda klatka kompresowana niezależnie Różne obszary klatki kompresowane z różnymi współczynnikami kompresji Przy tym samym stopniu kompresji oferuje lepszą jakość niż M-JPEG Kompresja plików wideo Program VirtualDub Darmowy Duża ilość opcji kompresji Rejestracja obrazu i dźwięku Edycja i filtracja filmów w podstawowym zakresie http://www.virtualdub.org/ 27 Otwieranie pliku wideo Tryby pracy kompresora (menu Video) Direct stream copy – kopiuje zawartość pliku źródłowego do docelowego bez rekompresji Fast recompres – kompresja z użyciem danych źródłowych, n.p. wektorów ruchu Normal recompres – pełna dekompresja i ponowna kompresja Full processing mode – jak wyżej, ale z możliwością filtracji 28 Wybór kodeka Parametry kodeka 1. 2. 1 2 3 3. Tryb pracy (wydajność/jakość) Liczba przebiegów Szybkość transmisji obrazu (najsilniej wpływa na jakość: więcej – lepsza jakość) 29 Ustawienia dźwięku Kodeki audio 30 Poruszanie się po filmie 1 234 5 66577 88 99 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 10 Pasek przewijania Stop Odtwórz wideo źródłowe Odtwórz wideo wyjściowe Początek, koniec Przewijanie do tyłu, do przodu Poprzednia, następna klatka kluczowa (klatka I) Poprzednia, następna scena Początek, koniec zaznaczenia Numer, czas i typ bieżącej klatki Zapis (kompresja) wideo Status kompresji 31 Obliczanie przepustowości (bitrate) bitrate = wielkośi docelowa dłługoś filmu Wielkość docelowa wyrażona w kilobitach, n.p. dla 700 MB = 700*1024*8 = 5734400 kb Długość filmu w sekundach, n.p. 30 min = 1800 s Wynikowa przepustowość (obraz i dźwięk w sumie) – ok. 3185 kb/s Automatyczny kalkulator w kodeku Xvid 32 Kodowanie ze zmienną przepustowością W pierwszym przebiegu obliczane są pewne parametry kodera i wskaźniki jakości dla poszczególnych klatek W kolejnych przebiegach stopień kompresji jest dobierany do jakości obrazu: dobra jakość – zmniejszona przepustowość, zła jakość – zwiększona przepustowość Lepsza jakość obrazu przy mniejszej średniej przepustowości 33