H.265 kontra H.264, zmierzone: oszczędność miejsca przy tej samej jakości na scenie spokojnej i w ruchu

Spis treści
Ta liczba stoi w niemal każdym tekście o pamięci dla kamer: przejście z H.264 na H.265 zmniejsza zapotrzebowanie na miejsce o połowę albo prawie. Czterdzieści do pięćdziesięciu procent, przy tej samej jakości obrazu.
Zmierzone przy tej samej jakości, na maszynie, która musi kodować w trakcie nagrywania, wyszło dwanaście procent – a przy scenie ruchomej nic.

Skąd bierze się zwyczajowa liczba
Nie jest wymyślona. H.265 naprawdę potrzebuje na ten sam obraz mniej więcej połowy danych H.264 – w porównaniach, wobec których ten sposób powstawał, a te dają koderowi tyle czasu, ile zechce.
Takie porównania odpowiadają na pytanie „jak dobry może być ten sposób”. Kamera stawia inne: „jak dobry może być ten sposób w jednej dwudziestej piątej sekundy, raz za razem, bez pozostawania w tyle”.
Oba pytania mają różne odpowiedzi, a rzecz idzie tu właśnie o odstęp między nimi.
Dlaczego stopień szybkości rozstrzyga wynik
Każdy koder ma pokrętło między nakładem a tempem. Na wolnym końcu próbuje wielu sposobów opisania każdego bloku obrazu i zachowuje najmniejszy; na szybkim bierze pierwszą użyteczną odpowiedź.
Im nowszy sposób, tym więcej od tego pokrętła zależy. H.265 i AV1 czerpią swoją przewagę z tego, że mają znacznie więcej możliwości do wyboru – a szybki stopień to dokładnie polecenie, żeby przestać wybierać.
Kodowano tutaj wyłącznie na stopniu, który urządzenie nagrywające dałoby radę utrzymać: drugie od końca ustawienie szybkości dla H.264 i H.265 oraz odpowiadające mu dla AV1. Ta jedna decyzja jest powodem, dla którego liczby tutaj są niższe od zwykle podawanych – i jest to stopień uczciwy dla wszystkiego, co nagrywa na żywo.
Jak w ogóle porównać dwa sposoby
Porównywanie rozmiarów plików ma sens tylko przy tej samej jakości obrazu, a pokrętło jakości każdego kodera jest inaczej ponumerowane. Ta sama liczba znaczy w każdym coś innego.
Dla każdego sposobu kodowania przygotowano trzy wersje materiału z różnymi ustawieniami jakości, a każdy wynik porównano klatka po klatce ze źródłem. Na tej podstawie powstaje dla każdego sposobu krzywa rozmiaru pliku względem jakości. Można z niej odczytać rozmiary przy tej samej jakości, zamiast porównywać te same ustawienia kodera.
Pominięcie tego kroku to zwyczajna droga do błędnej odpowiedzi. Przy porównaniu na tym samym ustawieniu pokrętła H.265 wypadł tutaj za pierwszym razem jedenaście razy lepiej – co było czystą różnicą jakości, a nie przewagą wydajności.

Scena spokojna: dwanaście procent
Pierwsze źródło zbudowano tak, jak stała kamera widzi przez większość dnia: stojące tło z prawdziwymi szczegółami obrazu i mały obiekt przesuwający się po nim.
Przy tej samej jakości sześć sekund dało 301 kB pod H.264 i 264 kB pod H.265. To dwanaście procent, nie czterdzieści.
AV1 wypadł wyraźnie lepiej: 179 kB, czterdzieści procent poniżej H.264. Na takim materiale najnowszy sposób daje więc to, co przypisuje się środkowemu.
Scena ruchoma: żadnego pewnego zysku
Drugie źródło porusza się nieprzerwanie w całym kadrze – to, co ta sama kamera widzi przez kilka minut dziennie, i dokładnie ten materiał, który ktoś chciałby zachować.
Tutaj H.265 dał przy tej samej jakości 1506 kB wobec 1274 kB u H.264: osiemnaście procent więcej. W niższym punkcie jakości wyszedł cztery procent mniejszy. Między tymi dwiema wartościami nie ma oszczędności, którą dałoby się planować.
AV1 pozostał z przodu z 1029 kB, dziewiętnaście procent poniżej H.264, a w niższym punkcie jakości pięćdziesiąt osiem procent poniżej.
Wzór jest konsekwentny: szybki stopień kosztuje H.265 większość jego przewagi, a AV1 znacznie mniej.
Ile kosztuje kodowanie
Sześć sekund wideo, na czterech rdzeniach.
H.264 potrzebował od 7 do 17 sekund. Jako jedyny z trzech jest w ogóle w pobliżu tego, czego wymaga działająca kamera na tym sprzęcie – i nawet on bez zapasu.
H.265 potrzebował od 41 do 150 sekund, czyli pięcio- do dziewięciokrotnie dłużej. AV1 od 61 do 181 sekund, siedmio- do jedenastokrotnie.
Tym samym całe pytanie się odwraca. Na urządzeniu z własnym układem kodującym nic z tego nie obowiązuje – układ robi H.265 z pełną prędkością, a oszczędność miejsca jest prawdziwa. W oprogramowaniu, na małym sprzęcie, wybór nie stoi między dwoma rozmiarami plików. Stoi między rozmiarem pliku a pytaniem, czy nagranie w ogóle nadąży.
Pytania i odpowiedzi
Ile ruchu może zawierać nagranie, zanim H.265 przy tych liczbach przestanie cokolwiek oszczędzać?
Niecałą siódmą część czasu. W przeliczeniu na sekundę H.265 oszczędza na scenie spokojnej 6,2 kB (44,0 zamiast 50,2 kB/s), a na scenie ruchomej kosztuje o 38,7 kB więcej (251,0 zamiast 212,3 kB/s). Obie wartości równoważą się, gdy ruch zajmuje 6,2 / (6,2 + 38,7) ≈ 13,8 procent nagrania, czyli przy kamerze pracującej przez całą dobę około 3,3 godziny dziennie.
Poniżej tej granicy H.265 coś oszczędza, ale nigdy więcej niż dwanaście procent ze sceny spokojnej; przy kilku minutach ruchu dziennie, które zakłada artykuł, oszczędność jest nieco mniejsza. Powyżej granicy plik staje się większy niż przy H.264.
Rachunek dotyczy tylko porównywanego punktu jakości i tylko przy założeniu, że materiał z całego dnia zachowuje się jak obie sceny testowe. W niższym punkcie jakości plik H.265 wyszedł także na scenie ruchomej o cztery procent mniejszy; tam granica by zniknęła, o ile scena spokojna również w tym punkcie coś oszczędza. AV1 oszczędza na obu scenach, ale na tym sprzęcie przegrywa z czasem kodowania.
Czy da się nagrywać w H.264, a później przekodować materiał do AV1?
Dla wybranych fragmentów tak, dla całego zbioru nie. AV1 potrzebował na sześć sekund wideo od 61 do 181 sekund, czyli od dziesięciu do trzydziestu razy więcej niż czas trwania; jeden dzień nagrania zająłby tę samą maszynę na dziesięć do trzydziestu dni. Do tego każde przekodowanie wychodzi od pliku już skompresowanego, którego straty pozostają, więc oszczędności zmierzonych względem pierwotnego źródła nie da się po prostu na to przenieść.