Słownik

Wideo i kodeki

Prawie każda myląca rzecz dotycząca plików wideo wynika z jednego rozróżnienia — między pudełkiem a tym, co w nim jest. Są to słowa określające oba elementy oraz operacje, które przemieszczają rzeczy między nimi.

Pojemnik

opakowanie, format

Struktura plików, która łączy ścieżki wideo, audio i napisów oraz opisuje, gdzie każda z nich się znajduje. MP4, MKV, AVI i WebM to kontenery. Pojemnik niczego nie kompresuje.

Pomyśl o nim jak o pudle archiwizacyjnym z etykietą zawartości. Pudło mówi: jest tu ścieżka wideo, zakodowana w ten sposób; tam dwie ścieżki audio, w tych językach; napisy przy tym przesunięciu. Nie ma żadnego zdania na temat tego, jak którakolwiek z nich została skompresowana.

Dlatego ten sam film może istnieć w MP4 i w MKV z identyczną jakością obrazu i identycznym rozmiarem pliku, i dlatego jeden z tych dwóch otwiera się na iPhonie, a drugi nie. Różnica tkwi w pudle, nie w zawartości.

Zobacz też: KodekRemux

Kodek

koder-dekoder

Metoda używana do kompresji strumienia wideo lub audio i jego ponownej dekompresji w celu odtwarzania. H.264, HEVC, AV1, AAC i MP3 to kodeki. Kodek nie jest formatem pliku.

Nazwa to skrót od koder-dekoder (ang. coder-decoder). Kodowanie odrzuca szczegóły w sposób obliczony tak, żeby był trudny do zauważenia, a dekodowanie odtwarza przybliżenie oryginału z tego, co zostało zachowane. Im lepszy kodek, tym mniej zauważalna strata przy danym rozmiarze.

Urządzenie odtwarza plik, gdy potrafi odczytać kontener *i* zdekodować każdy kodek w środku. Potrzebne są obie połowy, a gdy plik się otwiera, ale niczego nie pokazuje, to właśnie ta druga połowa zawiodła.

Zobacz też: PojemnikDekodowanie sprzętowe

H.264

AVC, MPEG-4, część 10

Kodek wideo, który wszystko może zdekodować. Opublikowany w 2003 roku, nadal najbezpieczniejszy wybór ze względu na kompatybilność i akcelerację sprzętową w każdym telefonie, komputerze i telewizorze wyprodukowanym w ciągu ostatnich piętnastu lat.

H.264 wygrał tak przekonująco, że pytania „czy to zagra wszędzie” i „czy to jest H.264” są niemal tym samym pytaniem. To nie jest najwydajniejszy dostępny kodek — HEVC i AV1 robią więcej przy mniejszej liczbie bitów — ale nic innego nie zbliża się do niego pod względem zasięgu wsparcia.

Ma profile, a jeden z nich sprawia kłopoty na urządzeniach Apple: High 10, często zapisywany jako Hi10P, koduje dziesięć bitów na kanał koloru zamiast ośmiu. Sprzętowe dekodery są tylko 8-bitowe, więc plik Hi10P odtwarza dźwięk bez obrazu na urządzeniu, które nie ma programowego rozwiązania zapasowego.

Zobacz też: HEVCDekodowanie sprzętowe10-bitowy

HEVC

H.265

Następca H.264, mniej więcej o połowę mniejszy przy tej samej jakości. Każde urządzenie Apple od 2015 roku dekoduje go sprzętowo i to właśnie nagrywa iPhone.

HEVC to coś, co uczyniło 4K praktycznym na telefonach: ten sam obraz przy mniej więcej połowie przepływności. Apple przyjęło go wcześnie i dogłębnie, więc na sprzęcie Apple jest równie bezpiecznym wyborem jak H.264.

Gdzie indziej jest bardziej zagmatwanie. Licencjonowanie patentów wokół HEVC było na tyle sporne, że przeglądarki internetowe długo zwlekały z jego wsparciem — i to dokładnie ta luka, którą miał wypełnić AV1.

Zobacz też: H.264AV1Szybkość transmisji

AV1

Wydany w 2018 roku kodek nieodpłatny, wydajniejszy od HEVC i w przeciwieństwie do niego pozbawiony sporów licencyjnych. Dekodowanie sprzętowe pojawiło się tylko na urządzeniach Apple z iPhonem 15 Pro.

AV1 istnieje, bo licencjonowanie HEVC sprawiło, że największe firmy streamingowe i przeglądarkowe zapragnęły alternatywy, którą mogłyby wdrożyć, nikomu nie płacąc. Dziś w tym formacie dostarczana jest ogromna część wideo w sieci.

Haczyk to koszt dekodowania. Bez wsparcia sprzętowego AV1 jest dekodowany programowo, co jest możliwe, ale zauważalnie drenuje baterię i może się zacinać przy wysokich rozdzielczościach. Na starszych urządzeniach wersja tego samego wideo w H.264 to lepszy plik.

Zobacz też: HEVCDekodowanie sprzętowe

Szybkość transmisji

Ile danych zużywa jedna sekunda wideo lub audio, zwykle w megabitach na sekundę. To najważniejsza rzecz, która decyduje zarówno o rozmiarze pliku, jak i o tym, ile urządzenie musi pracować.

Rozdzielczość przyciąga uwagę, ale to przepływność decyduje o tym, jak plik naprawdę wygląda. Plik 4K przy niskiej przepływności wygląda gorzej niż plik 1080p przy wysokiej, bo koder musiał odrzucić więcej, żeby osiągnąć swój cel.

To też zwykle sedno zacinającego się pliku. Gdy wideo odtwarza się na komputerze, a zacina na telefonie, z plikiem nic nie jest nie tak: po prostu wymaga więcej pracy dekodującej na sekundę, niż ten układ chce wykonać.

Zobacz też: KodekAdaptacyjna szybkość transmisji

Remux

przepakować

Przenoszenie istniejących strumieni wideo i audio z jednego kontenera do drugiego bez ich ponownego kodowania. Bezstratny i wystarczająco szybki, aby można go było ograniczyć raczej szybkością dysku niż procesorem.

Remux kopiuje strumienie; nie dotyka ani jednej klatki. Godzinny plik MKV z H.264 i AAC staje się plikiem MP4 w kilka sekund, identyczny bit po bicie w obrazie i dźwięku.

Działa tylko wtedy, gdy kontener docelowy akceptuje to, co niesie źródło — MP4 przyjmie H.264 i AAC, ale nie przyjmie VP9 ani Vorbis. Gdy ludzie mówią, że konwersja była „natychmiastowa”, zrobili remux. Gdy zajęła godzinę, coś zostało zakodowane na nowo.

Zobacz też: TranskodujPojemnik

Transkoduj

ponownie kodować, konwertować

Dekodowanie strumienia i kodowanie go ponownie, zwykle w innym kodeku lub przy niższej przepływności. Powolny i za każdym razem stratny — jakość nigdy nie wraca.

Transkodowanie to właśnie to, co ludzie mają na myśli, mówiąc „konwersja wideo”, i jest to naprawdę kosztowna operacja: każda klatka jest dekodowana, przetwarzana i ponownie kompresowana. To właściwa odpowiedź, gdy kodek naprawdę nie jest obsługiwany albo gdy plik musi się zmniejszyć.

To zła odpowiedź na „mój telefon tego nie otworzy”, gdy wystarczyłby remux, i słaba odpowiedź na plik, którego jedynym problemem jest ścieżka audio DTS — zastąpienie samej ścieżki pozostawia obraz nietknięty.

Zobacz też: RemuxSzybkość transmisji

Dekodowanie sprzętowe

Dekodowanie wideo na dedykowanym chipie, a nie na głównym procesorze. Znacznie szybszy, znacznie chłodniejszy i znacznie łagodniejszy dla baterii — ale obsługuje tylko te kodeki, do których został stworzony.

Każdy telefon zawiera dedykowany dekoder wideo, który obsługuje H.264 i HEVC niezwykle wydajnie. Wszystko, czego nie obsługuje, spada na oprogramowanie, które działa, ale kosztuje baterię i ciepło, i może nie nadążać przy wysokich rozdzielczościach.

Dlatego wsparcie formatu na telefonie to nie jedno proste tak albo nie. Urządzenie może odtwarzać kodek doskonale w 1080p programowo i zawodzić przy tym samym kodeku w 4K, i żaden z tych wyników nic nie mówi o tym, że plik jest wadliwy.

Zobacz też: KodekAV110-bitowy

10-bitowy

Hi10P, wysoka 10

Wideo przechowuje dziesięć bitów na kanał koloru zamiast ośmiu, co zapewnia płynniejsze przejścia gradientowe. W HEVC jest to normalne i dobrze obsługiwane; w H.264 jest to najczęstsza przyczyna tego, że plik zawiera dźwięk, ale nie ma obrazu na iPhonie.

Więcej bitów na kanał oznacza subtelniejsze stopnie między odcieniami, co usuwa pasmowanie widoczne na ciemnym niebie i powolnych przejściach. Dla HDR to wymóg, nie udoskonalenie.

Problem dotyczy konkretnie H.264. 10-bitowy H.264 wykracza poza to, co implementują dekodery sprzętowe, a systemowy odtwarzacz Apple nie ma dla niego ścieżki programowej, więc dźwięk gra, a obraz nigdy nie dociera. Wydania anime używają go intensywnie, dlatego pojawia się to znacznie częściej, niż sugerowałby ogólny udział tego formatu.

Zobacz też: H.264Dekodowanie sprzętowe

Klatka kluczowa

I-ramka

Klatka przechowywana w całości, a nie jako różnica w stosunku do klatki poprzedzającej. Szukanie może wylądować tylko na jednym, dlatego film czasami przeskakuje do nieco innego momentu, niż prosiłeś.

Kompresja wideo działa, opisując większość klatek jako zmiany względem sąsiednich. Tylko klatki kluczowe stoją samodzielnie i zwykle pojawiają się co dwie do dziesięciu sekund.

Gdy przeciągasz pasek przewijania, odtwarzacz znajduje najbliższą klatkę kluczową i zaczyna od niej. Szeroko rozstawione klatki kluczowe czynią plik mniejszym, a przewijanie mniej dokładnym; ten kompromis jest ustalany w momencie kodowania i nie da się go później zmienić bez ponownego kodowania.

Zobacz też: TranskodujSegment

Pozostałe tematy