Вручную кормить x264 своими собственными данными о движении? - PullRequest
4 голосов
/ 18 мая 2011

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

Есть ли способ передать x264 мою собственную информацию о движении?Я хотел бы дать ему векторы движения для заданных областей в кадре и как-то сказать, что определенные области в кадре гарантированно не имеют никакого движения.

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

Нужно ли модифицировать кодировщик для этого или это поддерживается в существующем API?

1 Ответ

3 голосов
/ 06 сентября 2011

Краткий ответ: Нет, вы не можете передать свои данные оценки движения в x264.

Длинный ответ: IIRC, x264 выполняет свою работу, будучи поданным в необработанном кадре без дополнительных данных.Чтобы соответствовать имеющимся у вас данным оценки движения, вам необходимо изменить исходный код x264, чтобы выполнить это.

Вы можете найти то, что вам нужно, в пределах common\mvpred.c или encoder\me.c.Я не уверен, сколько разработчиков x264 действительно посещают переполнение стека (я знаю, что у одного из их ведущих разработчиков есть учетная запись здесь), но вы можете попробовать поговорить с ними по их обычным каналам на их IRC-канале или на форумах doom9.

Хотелось бы дать вам больше информации, но, к сожалению, я не особо разбираюсь в базе кода.Тем не менее, разработчики всегда готовы помочь любому, кто хочет работать на x264.

...