Влияют ли сцены с интенсивным движением и сцены с движущимся светом на общее время кодирования?

2

Я заядлый геймер. Иногда мне нравится записывать свой игровой процесс с помощью Fraps и загружать его на YouTube. Для моей кодировки я использую Кодек Комисара x264 в VirtualDub со следующими настройками: ссылка на изображение

Сейчас я пытаюсь написать небольшую статью в блоге, потому что недавно снял со своего старого Q6600 и обновил до 2700k.

Вот небольшой фрагмент из черновика:

Скорость кодирования измеряется в (средних) кадрах в секунду. Чем больше,   веселее. Также важно знать, что есть, что мне нравится   называть сцены «тяжелым движением» и «легким движением».

а также

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

Теперь, что касается связанного кодека, используемого программного обеспечения для кодирования и связанных настроек, я прав в утверждении о сценах с интенсивным движением и сценами с движущимся светом?

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

Grumpy ol' Bear
источник
Это легко проверить: создать несжатый AVI и т. Д. Из одного сплошного цветного кадра (т. Е. 1 мин одного кадра), а затем создать один из группы кадров, сгенерированных с использованием случайного шума или облачного фильтра (т. Е. Повторяется 1 мин этих кадров случайным образом). Затем запустите свой кодер на каждом.
horatio
@Gareth: Для дальнейшего использования: я не давал вам разрешение загружать изображение настройки в imgur. Да, я оригинальный автор. Так что любезно попросить порядочность, прежде чем сделать это, не так ли?
Grumpy ol' Bear

Ответы:

3

Сжатие видео в основном кодирование различия между рамкой и следующей , Таким образом, чем больше различий между двумя кадрами, тем больше данных вам придется записывать. Это на самом деле намного сложнее, но это основа. Вы заметите это на DVD или любом другом фиксированный сжатие полосы пропускания (MPEG1, MPEG2, h.264 и т. д.), неподвижные изображения почти идеальны, а движущиеся - размыты. Это потому, что много движения требует больше данных для записи, поэтому необходимо найти компромисс.

Ravachol
источник
Это не фиксированные сжатия полосы пропускания, это только вопрос «контроля скорости».
KovBal
3

Я не уверен, что объем данных для обработки является значительным. Поскольку каждый кадр имеет одинаковое количество пикселей, вы можете генерировать «больше данных», только если вы уже запустили сложный алгоритм (ы) оценки движения, и даже в этом случае результирующий кадр P / B будет только меньше (иначе компенсация движения была бы бесполезна). Пропускная способность памяти в современных системах настолько высока, что я не думаю, что объем данных вообще влияет на скорость кодирования.

Кодер должен сначала запустить некоторый алгоритм для каждого кадра, чтобы определить, какой тип кадра следует использовать. Этот алгоритм может быть сложным, но сложность должна быть примерно одинаковой для каждого кадра (поэтому здесь не фактор). Однако, когда он определяет, что требуется P / B, должны выполняться очень сложные алгоритмы оценки движения с различными параметрами, чтобы определить, какой из них является наилучшим способом сжатия движения в кадре. Когда выбор опорных кадров вступает в игру, как в B кадрах, предыдущая сложность будет умножена.

Это дополнительные сложности, то есть время вычисления, которое возникает только тогда, когда кодер решает, что компенсация движения может лучше сжать кадр, чем простые различия пикселей, поэтому для сцен с интенсивным движением требуется больше времени для вычисления. Это также объясняет, почему время сжатия больше выигрывает от более быстрых процессоров, чем от более быстрого хранения.

billc.cn
источник
2

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

Так что технически да, это влияет на общее время кодирования, и интенсивное движение будет дольше кодироваться, чем движение света.

PatrickCUDO
источник