Co to jest profil?
Profil H.264 określa mniej więcej, jakich “bajerów” może używać koder podczas kompresji wideo - a istnieje wiele funkcji H.264, które koder może włączyć. To, które z nich można włączyć, określa profil. Profile zapewniają zgodność między urządzeniami o różnych możliwościach dekodowania. Dzięki profilom koder i dekoder uzgadniają zestaw funkcji, które mogą obsługiwać oba urządzenia.
Co robią różne profile?
Szczegółowa lista znajduje się na stronie Profile H.264 w Wikipedii.
Ogólnie, profil Baseline ogranicza koder tylko do pewnych podstawowych funkcji. Filmy zakodowane z profilem baseline mogą być łatwo odtwarzane nawet na urządzeniach o mniejszej mocy obliczeniowej, takich jak starsze smartfony. Telefony z Androidem i iOS, na przykład, oficjalnie odtwarzają tylko wideo zakodowane z profilem baseline, ale nie High czy Main. To się trochę zmieniło w ostatnich latach, gdzie coraz więcej telefonów może faktycznie odtwarzać wideo z profilem głównym lub wysokim, ale nadal oficjalne zalecenia nie wspominają, że .
Głównie dla tanich aplikacji, ten profil jest najczęściej używany w wideokonferencjach i aplikacjach mobilnych. Odpowiada on podzbiorowi cech, które są wspólne dla profili Baseline, Main i High
Main i High dodają tylko cechy do tego. Szczególnie wysoki profil jest często używany w nadawaniu:
Podstawowy profil do zastosowań nadawczych i przechowywania płyt, szczególnie do zastosowań w telewizji wysokiej rozdzielczości (na przykład jest to profil przyjęty przez format przechowywania płyt Blu-ray i usługę nadawczą DVB HDTV).
B slices są na przykład dozwolone tylko w profilu Main i wyżej. Mogą być używane do oszczędzania pasma, ale są trudniejsze do dekodowania, dlatego niektóre urządzenia mogą ich nie obsługiwać.
Co to ma wspólnego z jakością?
Profil tylko pośrednio wpływa na jakość. Niektóre cechy wyższych profili mogą umożliwić uzyskanie tej samej jakości przy niższych rozmiarach plików w porównaniu z niższymi profilami.
Na przykład, kodowanie entropii CABAC (Main i High) jest bardziej wydajne niż CAVLC (Baseline). Jest również bardziej intensywne obliczeniowo. Tak więc, jeśli dasz koderowi pewien bit rate do wydania, będzie on w stanie stworzyć lepszej jakości wideo z CABAC niż z CAVLC, ponieważ osiąga znacznie lepszą kompresję.
To również wyjaśnia, dlaczego osiągnąłeś mniejszy rozmiar pliku z profilem High - oczywiście, w jakiś sposób ustawiłeś stały poziom jakości i koder mógł użyć bardziej zaawansowanych technik kompresji, aby stworzyć plik wideo, który ma taką samą jakość jak profil Baseline, ale mniejszy rozmiar.
Więc… którego z nich powinieneś użyć?
Kilka podstawowych zasad:
- profil Baseline, jeśli celujesz w stare urządzenia mobilne
- profil Main lub High, jeśli celujesz w streaming internetowy, długoterminowe przechowywanie, komputery PC lub Mac, authoring Blu-ray, itp.