Как сжатие видео с переменной скоростью передачи данных усредняется на кадр? - PullRequest
0 голосов
/ 17 декабря 2010

За какой период времени переменная скорость передачи битов используется для усреднения?Например, скажем, я хочу кодировать 60 секунд видео 640 x 280 с частотой 25 кадров в секунду со скоростью 2000 килобит в секунду.

Проверяет ли кодек первую секунду (25 кадров) видео, определяет, как сжать эти 25кадры в 2000 килобит, затем переходят к следующей секунде видео (25 кадров)?

Или анализирует все видео (возможно, первые 10 секунд чисто черного цвета) и рассчитывает, что может использовать более 2000килобит за последние 50 секунд, но при этом сохраняется среднее значение 2000 килобит по всему видео?

Или это основано на интервале ключевых кадров конкретного кодека.Если бы для интервала ключевого кадра было установлено значение 250 (10 секунд видео), будет ли кодек назначать 20 000 килобит за этот 10-секундный период?

Я уверен, что он фактически различен для всех разных кодеков, но я полагаюдолжно быть лучшая практика (или, по крайней мере, термин, который я могу Google).

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

Я не знаю определений какого-либо конкретного кодека или реализации кодеров, но я знаком с рациональностью и мотивацией VBR (в большей степени это касается аудио, но я считаю, что концепция та же самая).

Здесь есть две основные категории: одиночный проход и многократный проход.Один проход (на лету) кодирует намного быстрее.Он просто проходит через видео один раз и кодирует.Это может быть сделано в режиме реального времени для трансляций и других ситуаций, когда все видео недоступно для предварительного анализа.Ваш вопрос, кажется, в основном касается нескольких проходов.Хотя это называется многопроходной, это обычно означает только два.Более того, вы, кажется, спрашиваете о многопроходном кодировании VBR, в котором задано среднее значение (ABR), которое необходимо соблюдать.

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

Таким образом, мне кажется, что наиболее эффективный способ для кодера придерживаться указанного среднего значения - это выборка отдельных кадров с определенной периодической частотой.на протяжении всего файла.Скажем, два раза в секунду для всего видео.(Я не знаю, является ли это даже приблизительным критерием реалистичной оценки, но вы поняли идею).Надеемся, что это дает хорошую оценку характера видео (из-за отсутствия лучшего слова) и позволяет наиболее эффективно распределить эти драгоценные ресурсы.

Следует также отметить, что иногда существует диапазон минимального и максимальногобитрейты, которые можно использовать так, чтобы битрейт никогда не мог быть меньше X или больше Y. Хорошо выбранные диапазоны, очевидно, зависят от разрешения.

Что касается терминов для Google - попробуйте многоходовойкодирование и AVR.И, как обычно, Википедия делает довольно хорошую грубую картину, достаточно, чтобы вы знали, куда идти для дальнейшего чтения http://en.wikipedia.org/wiki/Variable_bitrate#Multi-pass_encoding_and_single-pass_encoding

1 голос
/ 17 декабря 2010

Термин, который вы можете использовать в Google - многопроходное кодирование и прогнозирование скорости.

Что он делает (помимо обеспечения кодирования наилучшего качества), так это то, что кодек эффективно кодирует видео дважды, впервые записывая потерю качестваво второй раз, благодаря фиксированной скорости передачи битов, включающей эту информацию для поддержания одного и того же уровня качества независимо от количества изменений в видео.

Прогнозирование скорости / Контроль скорости - очень интересная тема, особеннодля реального времени, однопроходное кодирование.Кодек должен хорошо оценить будущую сложность сцены, чтобы сохранить общую скорость передачи битов на целевом уровне.

Ограничения на максимальную скорость передачи битов, разрешенную для канала (например, вам может потребоваться средний битрейт 1 Мбит / с)., но содержимое не может превышать 2 Мбит / с в течение более 5 с из-за буферизации в проигрывателях), что делает эту задачу еще более сложной.

Посмотрите здесь больше подсказок: http://www.pixeltools.com/rate_control_paper.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...