2015-07-14 2 views
1

Я выполняю некоторую аппаратную реализацию на Ratecontrol FFMPEG. Я использую encoder x264, здесь я не могу найти реализацию C-Code этой функции intra_mbcmp_x3_8x8c.Pure C-Code x264 of ffmpeg

Я попытался отследить его назад, но есть только реализация сборки кода. Может ли какой-нибудь орган прочесть руководство по чистой C-реализации последнего x264.

Было бы также полезно, если кто-то поможет мне отключить флаги x86 в FFMPEG, чтобы я смог запустить чистую реализацию C.
Примечание: Я проверил аналогичный вопрос here.
Но я не смог получить ответ.

ответ

3

Возможно, вы ищете this. Существуют различные реализации mbcmp (sad, satd), потому что x264 позволяет пользователю выбирать, какую метрику ошибки использовать.

О, и связанный с вашим вторым вопросом, посмотрите на x264 --asm option (или, если вы собираетесь использовать API, посмотреть, как это реализовано на стороне API):

$ ~/Projects/x264/x86-64/x264 --fullhelp|grep -- --asm 
     --asm <integer>   Override CPU detection 
+0

Спасибо за ваш ответ, который был очень полезно. Теперь я отключил ассемблерный код функции intra_mbcmp_x3_8x8c в slicetype.c Проблема, с которой я столкнулась, - это функция intra_mbcmp_x3_8x8c, возвращающая три значения satd. Я не могу найти эквивалентный код C этой функции. –

+0

Я поместил printf в большинство файлов C. Но я не могу найти, где находится его тело функции. Я хочу знать логику этой функции h-> pixf.intra_mbcmp_x3_8x8c (h-> mb.pic.p_fenc [0], pix, satds); Не могли бы вы помочь мне узнать эквивалентный код C этой функции. Заранее спасибо –

+1

Линия 545 файла, связанного с "this" в моем первоначальном ответе: INTRA_MBCMP (sad, 8x8, dc, h, v, c ,, _c), создает функцию void x264_intra _ ## mbcmp ## _ x3_ ## size ## chroma ## cpu => x264_intra_sad_x3_8x8c_c, который сделает грубую (или строку 546: satd) на dc, h и v внутри предсказателях в плоскости цветности. Я не совсем понимаю, что вы здесь не понимаете, можете ли вы быть более конкретным? –

Смежные вопросы