В целом весь конвейер преобразований можно представить так.
- Подготовка макроблоков. Для каждого макроблока определяется каким образом он будет сжатый. В I-кадрах все макроблоки сжимаются независимо. В Р-кадрах блок или сжимается независимо, либо представляет собой разницу с одним из макроблоков в предыдущем опорном кадре, на который ссылается Р-кадр.
- Перевод макроблока в цветовое пространство YUV. Получение нужного количества матриц 8x8.
- Для Р и В-блоков производится вычисление разности с соответствующим макроблоком в опорном кадре.
- ДКП (дискретное косинусное преобразование).
- Квантование.
- Зигзаг-сканирование.
- Групповое кодирование.
- Кодирование Хаффмана.
При декодировании весь конвейер повторяется для обратных преобразований, начиная с конца.