Kompresja ruchomych obrazów Najprostsze systemy kompresji ruchomych obrazów po prostu kompresują każdą klatkę osobno. Jest to bardzo nieefektywne, ponieważ kolejne klatki są zazwyczaj do siebie bardzo podobne.
Zwykle używa się zestawu klatek kluczowych, które kompresuje się tak samo, jak samodzielne obrazki. Pozostałe klatki kompresuje się natomiast, korzystając z danych z klatek poprzednich. Lepsze wyniki dałoby wykorzystanie danych o poprzednich klatkach przy kompresji każdej klatki, jednak utrudniałoby to znacznie przewijanie.
Prostym sposobem wykorzystania danych o poprzednich klatkach jest kodowanie różnicy wartości pikseli o tym samym położeniu, zamiast samych wartości. Tym sposobem można dobrze skompresować sceny, w których kamera jest nieruchoma, jednak nie da to znaczących efektów w scenach z kamerą ruchomą. Zwykle wykorzystuje się więc różne rodzaje kompensacji ruchu. Np. dla każdego bloku podaje się niewielki wektor przesunięcia, np. [2, –1], czyli zamiast tego samego bloku klatki poprzedniej używamy bloku o dwa piksele w prawo i jeden w górę (czy też w lewo i w dół).