Я частично согласен с Джерри Коффином; Я думаю, что H.261 определенно является хорошей отправной точкой для любого, кто изучает сжатие видео, но читать спецификацию напрямую не является хорошей идеей.
Основными строительными блоками из H.261, на которых я бы хотел остановиться, являются компенсация движения, макроблоки, DCT для уменьшения пространственной избыточности и дифференциальная PCM (DPCM) для уменьшения временной избыточности.
Если бы мне пришлось выбирать один общий принцип сжатия видео в учебных целях, начните с оценка движения и компенсация движения . Попробуйте это упражнение: представьте два последовательных видеокадра, разделенных всего 1/30 секунды. Они будут очень похожи, верно? Не заглядывая в Интернет, что бы вы сделали, чтобы использовать информацию, закодированную в кадре 1, для уменьшения длины кода кадра 2? Теперь перейдите к поиску оценка движения .
Далее, как бы вы сократили пространственную избыточность ? H.261 использует что-то вроде JPEG и использует DCT.
Редактировать: От Вана, Остермана и Чжана (стр. 293-4 о блочном гибридном кодировании видео, которым по сути является H.261):
В этом кодере каждый видеокадр делится на блоки фиксированного размера, и каждый блок обрабатывается более или менее независимо, отсюда и название «на основе блоков». Слово «гибрид» означает, что каждый блок кодируется с использованием комбинации временного прогнозирования с компенсацией движения и кодирования с преобразованием. ... Первый блок-предсказывается из ранее кодированного опорного кадра, используя оценку движения на основе блока. Вектор движения определяет смещение между текущим блоком и наилучшим подходящим блоком. Предсказанный блок получается из предыдущего кадра на оцененном MV с использованием компенсации движения. Затем блок ошибки прогнозирования кодируется путем преобразования его с использованием DCT, квантования коэффициентов DCT и преобразования их в двоичные кодовые слова с использованием кодирования переменной длины.