Dla każdego makrobloku (16x16 punktów) oblicza się wektor, wskazujący na miejsce w klatce odniesienia (najczęściej jest to poprzednia klatka filmu), które jest najbardziej podobne do kodowanego makrobloku. Do odbiornika przesyła się wartość wektora i różnicę względem "podobnego" makrobloku. Ta operacja pozwala na ogromną redukcję przesyłanych danych. Kodowanie transformatowe. Obraz każdej klatki dzielony jest na bloki o wielkości 8x8 punktów, a następnie dokonuje się na takim bloku operacji matematycznej nazywanej transformacją kosinusową (DCT), która zamienia treść bloku 64 punktów na informację o wolnych i szybkich zmianach luminancji i chrominancji w różnych kierunkach, a ponieważ składowe szybkozmienne są mniej intensywne, odpowiadające im wartości liczbowe (współczynniki transformaty DCT) mają wartości bliskie zeru i mogą być pominięte lub zapisane zgrubnie bez znaczącej straty jakości. Kodowanie Huffmana. Informacja o wektorach ruchu i współczynnikach DCT jest kodowana kodem Huffmana. Wartości bardzo prawdopodobne są reprezentowane przez krótsze ciągi zer i jedynek, a mało prawdopodobne - przez dłuższe.