H.264
Marzec 22nd, 2010Dla płyt HD standardem staje się powoli Bu-ray który bardzo prężnie wypiera DVD. Dla tej technologii przewidziane są trzy kodeki w tym najbardziej obiecujący wspomniany w temacie. Nawet bardzo popularny format DivX 7 przesiada się na ten format. H.264 to nie nowe kodowanie, działa on na tej samej zasadzie co MPEG-2. Bo przecież film to nic innego jak obrazy odtwarzane w odpowiednim tempie, zależnie od standardu może to być 24 lub 30 klatek na sekundę. Kodem MPEG-2 grupuje ten strumień najczęściej 12 klatek na sekundę. Taki strumień nazywany jest GOP-em, a jego pierwszy obraz jest kodowany i zapisywany jako JPEG. Aby tak się działo ramka jest dzielona na makrobloki które mają wymiar 16×16. Następnie jest przeprowadzana konwersja do przestrzeni kolorów YCrCb. Oko ludzkie ma tą właściwość że lepiej dostrzega drobne zmiany jasności niż kolorów. Kolejne ramki w strumieniu to tzw. Inter-Frame, kodek tworzy je za pomocą wektorów ruchu. H.264 stosuje transformację całkowitą na blokach 4×4. Ta zmiana jest dobrze widoczna przy wyświetlaniu obrazu. Jeśli chodzi o redukcję ilości danych to odbywa się ona dopiero w następnym kroku czyli podczas kwantyzacji. Częstotliwość wyświetlania jest dopasowywana do wymagań oka ludzkiego. Aby tak było to każdy blok nakłada macierz kwantyzacji. Podczas kodowania Inter-Framów chodzi o to by jak najwięcej makrobloków każdej ramki opisać za pomocą wektorów ruchu. W tej płaszczyźnie zarówno MPEG-2 jak i H.264 pracują podobnie. Z tym że ten drugi podczas pracy stosuje różne wielkości makrobloków które zawierają się od 4×4 do 16×16. Ale mogą być tez takie niestandardowe jak 16×8. W tym wszystkim chodzi o to że wektory ruchu zapewniają dokładność która sięga jednej czwartej piksela. Natomiast w formacie MPEG-2 dokładność ta sięga tylko ½ piksela. Wektor ruchu wbrew swej nazwie Ne dotyczy wcale ruchu, a wskazuje on na blok w innej ramce. Wektor taki składa się z trzech wartości, dwie z nich to współrzędne przestrzenne, a trzeci to lista numerów odniesienia ramek. Jeśli mamy do czynienia z niskimi wartościami przepływu to kodek musi sięgać do wysokich parametrów kwantyzacji. Wtedy wiele liczb zostaje wyzerowanych i wtedy zostaje po jednej na każdy kanał koloru oraz jasność. Omawiany kodek podczas swej pracy podejmuje decyzje które mają wpływ na skompresowany film. Już od samego początku wybiera wielkość bloków oraz wiele kombinacji dla konkretnych makrobloków.