AV1 vs. h265 (HEVC) vs. VP9: Jaka jest różnica między tymi standardami kompresji?

AV1 vs. h265 (HEVC) vs. VP9: Jaka jest różnica między tymi standardami kompresji?

Przesyłanie strumieniowe w rozdzielczości 4K to nowa norma, ale informacje dotyczące ponad 8,2 miliona pikseli są przesyłane co 16 milisekund — przechowywanie i przesyłanie wideo 4K w Internecie nie jest łatwym zadaniem.

Dwugodzinny film bez kompresji zajmowałby ponad 1,7 terabajta pamięci. Jak więc giganci streamingu, tacy jak YouTube i Netflix, radzą sobie z przechowywaniem i przesyłaniem strumieniowym filmów, które zajmują tak dużo miejsca?

Cóż, nie robią tego, ponieważ używają kodeków wideo do zmniejszania rozmiaru filmów, ale czym jest kodek wideo i który z nich jest najlepszy?

Co to jest kodek wideo?

Zanim zagłębisz się w złożoność kodeków wideo, musisz zrozumieć, jak powstaje film. Mówiąc prościej, wideo to nic innego jak zestaw nieruchomych obrazów, które szybko się zastępują.

Oprogramowanie do edycji wideo działające na komputerze

Ze względu na tę dużą prędkość zmian ludzki mózg myśli, że obrazy się poruszają, tworząc iluzję oglądania wideo. Dlatego oglądając wideo w 4K, patrzysz po prostu na zestaw obrazów o rozdzielczości 2160×3840. Ta wysoka rozdzielczość obrazów sprawia, że ​​film nagrany w rozdzielczości 4K zapewnia wspaniałe wrażenia wideo. To powiedziawszy, ta wysoka rozdzielczość obrazów zwiększa rozmiar wideo, uniemożliwiając przesyłanie strumieniowe przez kanały o ograniczonej przepustowości, takie jak Internet.

Aby rozwiązać ten problem, mamy kodeki wideo. Skrót od kodera/dekodera lub kompresji/dekompresji, kodek wideo kompresuje strumień obrazów do bitów danych. Ta kompresja może albo obniżyć jakość wideo, albo nie mieć na nią wpływu w zależności od zastosowanych algorytmów kompresji.

Jak sama nazwa wskazuje, bit kompresji w kodeku zmniejsza rozmiar każdego obrazu. Aby zrobić to samo, algorytm kompresji wykorzystuje niuanse ludzkiego oka, aby ludzie nie wiedzieli, że oglądane przez nich filmy są skompresowane.

Dekompresja natomiast działa odwrotnie i renderuje wideo przy użyciu skompresowanych informacji.

Chociaż kodeki wykonują świetną robotę, jeśli chodzi o kompresję informacji, wykonywanie tego samego może obciążać procesor. Z tego powodu normalne jest obserwowanie wahań wydajności systemu podczas uruchamiania algorytmów kompresji wideo w systemie.

Aplikacja do edycji wideo działająca na iPadzie

Aby rozwiązać ten problem, procesory i karty graficzne są dostarczane ze specjalnym sprzętem, który może obsługiwać te algorytmy kompresji. Umożliwienie procesorowi wykonywania bieżących zadań, podczas gdy dedykowany sprzęt przetwarza kodeki wideo, poprawiając wydajność.

Jak działa kodek wideo?

Teraz, gdy mamy podstawową wiedzę na temat tego, co robi kodek wideo, możemy przyjrzeć się, jak działa kodek.

Podpróbkowanie Chroma

Jak wyjaśniono wcześniej, filmy składają się z obrazów, a podpróbkowanie chrominancji ogranicza informacje zawarte w każdym obrazie. Aby to zrobić, redukuje informacje o kolorze zawarte w każdym obrazie, ale w jaki sposób ludzkie oko wykrywa tę redukcję informacji o kolorze?

Widzisz, ludzkie oczy świetnie wykrywają zmiany jasności, ale nie można tego powiedzieć o kolorach. Dzieje się tak dlatego, że ludzkie oko ma więcej pręcików (komórek fotoreceptorów odpowiedzialnych za wykrywanie zmian jasności) niż czopków (komórek fotoreceptorów odpowiedzialnych za różnicowanie kolorów). Różnica w pręcikach i czopkach uniemożliwia oczom wykrywanie zmian kolorów podczas porównywania skompresowanych i nieskompresowanych obrazów.

Różne poziomy kompresji wideo przy użyciu podpróbkowania chrominancji
Kredyty obrazkowe: Janke z angielskiej Wikipedii/Wikimedia Commons

Aby wykonać podpróbkowanie chrominancji, algorytm kompresji wideo konwertuje informacje o pikselach w RGB na dane dotyczące jasności i koloru. Następnie algorytm zmniejsza ilość kolorów w obrazie na podstawie poziomów kompresji.

Usuwanie nadmiarowych informacji o ramce

Filmy składają się z kilku klatek obrazu iw większości przypadków wszystkie te klatki zawierają te same informacje. Na przykład wyobraź sobie film z osobą mówiącą na stałym tle. W takim przypadku wszystkie klatki w filmie mają podobną kompozycję. Dlatego wszystkie obrazy nie są potrzebne do renderowania wideo. Wszystko, czego potrzebujemy, to podstawowy obraz, który zawiera wszystkie informacje i dane związane ze zmianą podczas przechodzenia z jednej klatki do drugiej.

Dlatego, aby zmniejszyć rozmiar wideo, algorytm kompresji dzieli klatki wideo na klatki I i P (przewidywane klatki). Tutaj ramki I są podstawą i są używane do tworzenia ramek P. Ramki P są następnie renderowane przy użyciu informacji zawartych w ramkach I oraz informacji o zmianie dla tej konkretnej ramki. Korzystając z tej metodologii, wideo jest dzielone na zestaw klatek I przeplatanych w klatki P, co powoduje dalszą kompresję wideo.

Kompresja ruchu

Teraz, gdy podzieliliśmy wideo na klatki I i P, musimy przyjrzeć się kompresji ruchu. Część algorytmu kompresji wideo, która pomaga tworzyć klatki P przy użyciu klatek I. W tym celu algorytm kompresji dzieli ramkę I na bloki zwane makroblokami. Bloki te otrzymują następnie wektory ruchu, które definiują kierunek, w którym poruszają się te bloki podczas przechodzenia z jednej klatki do drugiej.

Wektory ruchu na obrazie gry
Źródło obrazu: Blender Foundation/ Wikimedia

Te informacje o ruchu dla każdego bloku pomagają algorytmowi kompresji wideo przewidzieć lokalizację każdego bloku w nadchodzącej klatce.

Usuwanie danych obrazu o wysokiej częstotliwości

Podobnie jak zmiany w danych kolorów, ludzkie oko nie jest w stanie wykryć subtelnych zmian w elementach o wysokiej częstotliwości na obrazie, ale czym są elementy o wysokiej częstotliwości? Widzisz, obraz renderowany na ekranie składa się z kilku pikseli, a wartości tych pikseli zmieniają się w zależności od wyświetlanego obrazu.

W niektórych obszarach obrazu wartości pikseli zmieniają się stopniowo i mówi się, że takie obszary mają niską częstotliwość. Z drugiej strony, jeśli następuje szybka zmiana danych w pikselach, obszar jest klasyfikowany jako zawierający dane o wysokiej częstotliwości. Algorytmy kompresji wideo wykorzystują dyskretną transformatę kosinusową w celu zmniejszenia składowej o wysokiej częstotliwości.

Oto jak to działa. Najpierw algorytm DCT działa na każdym makrobloku, a następnie wykrywa obszary, w których zmiana intensywności pikseli jest bardzo szybka. Następnie usuwa te punkty danych z obrazu, zmniejszając rozmiar wideo.

Kodowanie

Teraz, gdy wszystkie zbędne informacje w filmie zostały usunięte, możemy przechowywać pozostałe bity danych. W tym celu algorytm kompresji wideo wykorzystuje schemat kodowania, taki jak kodowanie Huffmana, które łączy wszystkie bity danych w klatce z liczbą ich wystąpień w filmie, a następnie łączy je w sposób podobny do drzewa. Te zakodowane dane są przechowywane w systemie, co umożliwia łatwe renderowanie wideo.

Struktura kodowania Huffmana
Kredyty obrazkowe: Redor/ Wikimedia

AV1 vs. HEVC vs. VP9: Który kodek jest najlepszy?

Teraz, gdy rozumiemy, jak działają kodeki, możemy określić, który z AV1, HEVC i VP9 jest najlepszy.

Kompresja i jakość

Jeśli masz wideo 4K, które zajmuje dużo miejsca w systemie i nie możesz przesłać go na ulubioną platformę do przesyłania strumieniowego, być może szukasz kodeka wideo, który oferuje najlepszy współczynnik kompresji. Należy jednak wziąć pod uwagę, że jakość, jaką zapewnia, spada w miarę kompresji wideo. Dlatego przy wyborze algorytmu kompresji należy zwrócić uwagę na jakość, jaką zapewnia on przy określonej szybkości transmisji bitów, ale jaka jest szybkość transmisji wideo?

Mówiąc najprościej, szybkość transmisji wideo jest definiowana jako liczba bitów, które wideo musi odtworzyć przez sekundę. Na przykład 24-bitowy nieskompresowany film 4K odtwarzany z szybkością 60 klatek ma przepływność 11,9 Gb/s. Dlatego jeśli przesyłasz strumieniowo nieskompresowane wideo 4K w Internecie, Twoja sieć Wi-Fi musi dostarczać 11,9 gigabitów danych na sekundę, co wyczerpuje miesięczny limit danych w ciągu kilku minut.

Przeciwnie, użycie algorytmu kompresji zmniejsza przepływność do bardzo małej wartości w oparciu o wybraną przepływność bez pogorszenia jakości.

Jeśli chodzi o wartości dotyczące kompresji/jakości, AV1 prowadzi w zestawieniu i oferuje o 28,1 procent lepszą kompresję w porównaniu z H.265 i 27,3 procent oszczędności w porównaniu z VP9, ​​zapewniając jednocześnie podobną jakość.

Dlatego jeśli szukasz najlepszej kompresji bez pogorszenia jakości, AV1 to współczynnik kompresji dla Ciebie. Ze względu na świetny stosunek kompresji do jakości kodek AV1 jest używany przez Google w aplikacji do wideokonferencji Google Duo oraz przez Netflix podczas przesyłania wideo na łączu danych o niskiej przepustowości.

Zgodność

Jak wyjaśniono wcześniej, algorytm kompresji wideo koduje wideo po jego skompresowaniu. Teraz, aby odtworzyć ten film, Twoje urządzenie musi go zdekodować. Dlatego jeśli Twoje urządzenie nie obsługuje sprzętu/oprogramowania do dekompresji wideo, nie będzie mogło go uruchomić.

Dlatego ważne jest, aby zrozumieć aspekt kompatybilności algorytmu kompresji, ponieważ jaki jest sens tworzenia i kompresowania treści, których nie można uruchomić na wielu urządzeniach?

Jeśli więc szukasz kompatybilności, to VP9 powinien być dla Ciebie kodekiem, ponieważ jest obsługiwany na ponad dwóch miliardach punktów końcowych i może działać w każdej przeglądarce, smartfonie i telewizorze Smart TV.

Tego samego nie można powiedzieć o AV1, ponieważ wykorzystuje nowsze, bardziej złożone algorytmy w celu zmniejszenia rozmiaru pliku wideo i nie można go odtwarzać na starszych urządzeniach. Jeśli chodzi o obsługę przeglądarek, Safari nie może odtwarzać AV1, ale przeglądarki takie jak Firefox i Chrome mogą odtwarzać filmy AV1 bez żadnych problemów.

Jeśli chodzi o obsługę sprzętu, nowe układy SoC i procesory graficzne, takie jak Snapdragon 8 Gen 2, Samsung Exynos 2200, MediaTek Dimensity 1000 5G, Google Tensor G2, seria RTX 4000 firmy Nvidia oraz procesory graficzne Intel Xe i Arc obsługują przyspieszone dekodowanie sprzętowe dla kodeka AV1 . Dlatego jeśli posiadasz urządzenia wyposażone w te chipsety, możesz cieszyć się przesyłaniem strumieniowym treści skompresowanych przy użyciu kodeków AV1 bez wyczerpania mocy procesora/układu graficznego.

Jeśli chodzi o kodek H.265, większość popularnych przeglądarek, takich jak Safari, Firefox i Google Chrome, może bez problemu odtwarzać filmy zakodowane przy użyciu algorytmu kompresji. To powiedziawszy, w porównaniu z AV1 i VP9, ​​H.265 nie jest oprogramowaniem typu open source, a korzystanie z kodeka H.265 wymaga zakupu licencji. Z tego powodu aplikacje, takie jak odtwarzacz wideo Movies & TV firmy Microsoft, które są dostarczane z systemem operacyjnym, nie mogą domyślnie odtwarzać filmów zakodowanych przy użyciu H.265. Zamiast tego użytkownicy muszą zainstalować dodatkowe dodatki ze sklepu Windows, aby uruchomić takie filmy.

Szybkość kodowania

Kodeki wideo znacznie zmniejszają rozmiar wideo, ale aby zmniejszyć rozmiar wideo, nieskompresowane wideo musi zostać przetworzone za pomocą oprogramowania, co wymaga czasu. Dlatego jeśli chcesz zmniejszyć rozmiar wideo, musisz spojrzeć na czas potrzebny do skompresowania wideo za pomocą algorytmu kompresji.

Jeśli chodzi o wydajność kodowania, VP9 prowadzi w zestawieniu, a czas kodowania do kompresji wideo jest znacznie krótszy niż w przypadku H.265 i AV1. Z drugiej strony AV1 jest najwolniejszy pod względem czasu kodowania i może zająć ponad trzy razy więcej czasu na zakodowanie wideo w porównaniu z H.265.

Który kodek wybrać?

Jeśli chodzi o kodeki wideo, znalezienie idealnego kodeka jest bardzo subiektywne, ponieważ każdy kodek oferuje inne funkcje.

Jeśli szukasz najlepszej jakości wideo, wybierz AV1. Z drugiej strony, jeśli szukasz najbardziej kompatybilnego kodeka wideo, VP9 będzie dla Ciebie najlepszy.

Wreszcie, kodek H.265 doskonale pasuje, jeśli potrzebujesz dobrej jakości i kompresji bez kosztów ogólnych związanych z kodowaniem.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *