Constant vs variable bitrate

В прошлый раз мы провели с вами аналогию между битрейтом в информатике и плотностью в физике. Мы увидели, как переход к удельным величинам позволил нам прийти к нужному результату более коротким путем. Если у нас нет весов, но есть линейка, то знание плотности позволит нам «взвесить» не взвешиваемое. Если у нас нет времени ждать, пока видеокамера запишет все 2 часа футбольного матча, чтобы узнать сколько места в хранилище займет вся запись, то знание битрейта позволит нам вычислить объем требуемого места почти мгновенно: достаточно лишь перемножить два числа — битрейт и время матча.

Однако такой подход работает только при одном условии: наш предмет должен быть однородным — то есть его плотность должна быть постоянной, или, переходя к битрейту, битрейт не должен зависеть от того, что в это время происходит на цифровой картинке — то есть тоже должен оставаться величиной постоянной (CBR — Constant Bitrate).

В реальности же всё не так просто. Человек всегда стремится к оптимизации. Хочется записать как можно больше, с как можно более лучшим качеством и при этом потратить как можно меньше места на SSD / HDD / «флешке».

Поэтому в какой-то момент человек задумался: если в сцене мало каких-то деталей, однородный фон (например, небо) или ничего не происходит (статичная сцена, заминка в матче), то зачем сохранять одно и то же? Если же в кадре толпа людей на пестром фоне, или лес с мелкими листьями, сильный дождь, снег, или кто-то быстро бежит, едет, дерётся, то нужно, наоборот, сохранять большое количество данных как можно чаще, чтобы не упустить все детали.

Так мы приходим к переменному битрейту (VBR — Variable Bitrate) — методу кодирования, при котором кодер (программа или чип в камере) динамически меняет количество битов данных, выделяемых на каждую секунду видео, в зависимости от сложности сцены — пространственной (детализация в кадре) или временной (движение в кадре).

Из плюсов переменного битрейта — мы теперь получаем более стабильное качество картинки, и в среднем тратим меньше места на диске для хранения видео.

Из минусов — предсказать сколько места займёт файл уже невозможно, так как мы ещё не знаем что именно будет происходить в матче в следующие 2 часа. Насколько он будет динамичным, и как именно будет меняться битрейт в процессе нашей записи.

На подумать

Ок, мы заменили постоянный битрейт на переменный и выиграли в качестве картинки и, скорее всего, в объёме хранилища, которое понадобится для хранения всей записи.

А какой же объём хранилища нам всё-таки потребуется для записи двухчасового матча? Ведь мы начинали именно с этой задачи!

Ответ

Мы не можем дать точный ответ на этот вопрос, но можем произвести оценку сверху. А о том, что такое оценка сверху читайте дальше.