Термин
Prediction
Общее название для «лучшей догадки энкодера о блоке до кодирования residual» – бывает intra и inter.
Prediction – наилучшая догадка энкодера о том, как должен выглядеть каждый блок пикселей, сделанная до кодирования реального содержимого. Два варианта: `intra-prediction` делает догадку на основе уже декодированных пикселей сверху и слева в том же кадре; `inter-prediction` – на основе ранее декодированных кадров через motion vectors. После догадки энкодер вычитает её из реального содержимого и получает небольшой residual, и только residual преобразуется, квантуется и сохраняется.
Это главная причина, почему современное видео хорошо сжимается. Хорошая prediction означает, что residual – это в основном нули, которые на этапе entropy coding сжимаются почти до ничего. Плохая prediction – residual по сути исходное содержимое, и оно плохо сжимается. Поколения кодеков измеряют свой прогресс в значительной мере через то, насколько хороши их prediction: лучшие направленные режимы, больше reference-кадров, sub-pixel-точность motion vectors, multiple-hypothesis prediction (комбинация двух догадок) и всё более сложные intra-prediction режимы (у AV1 – 56 направленных intra-режимов; у H.264 было всего 9).
Для продуктовой команды prediction – центральная идея, делающая современное видео экономически осуществимым. Без prediction каждый кадр кодировался бы как JPEG и 90-минутный фильм весил бы десятки гигабайт. С prediction тот же фильм помещается в 2–3 ГБ при том же качестве. Любое заявление об улучшении кодека – «на 30 % лучше предыдущего поколения» – почти всегда возвращается к улучшениям в prediction. Если запомнить только одно понятие о том, как работает современное видеосжатие, – пусть это будет prediction.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.