FFMPEG компенсация движения и поиск
529
Tina J
Я пытаюсь изменить часть обнаружения движения в FFMPEG. Что я хочу сделать, так это расширить пространство поиска, чтобы всякий раз, когда макроблок попадал на самый правый край кадра, мне все равно приходилось перемещать блок в крайнее левое положение, как будто они соединены (в моих примерах видео - правый край это на самом деле продолжение левого края). Может кто-нибудь помочь мне указать, где именно я могу изменить его в исходном коде FFMPEG или x265, или x264?
Я взял H265 в качестве примера отсюда . В нем есть motion.c
файл, в котором приятно указаны возможные размеры блоков, как показано ниже, но я не могу найти конкретный цикл, который пересекает фрейм. Помощь высоко ценится.
#define SETUP_SCALE(W, H) \ sizeScale[LUMA_ ## W ## x ## H] = (H * H) >> 4; SETUP_SCALE(4, 4); SETUP_SCALE(8, 8); SETUP_SCALE(8, 4); SETUP_SCALE(4, 8); SETUP_SCALE(16, 16); SETUP_SCALE(16, 8); SETUP_SCALE(8, 16); SETUP_SCALE(16, 12); SETUP_SCALE(12, 16); SETUP_SCALE(4, 16); SETUP_SCALE(16, 4); SETUP_SCALE(32, 32); SETUP_SCALE(32, 16); SETUP_SCALE(16, 32); SETUP_SCALE(32, 24); SETUP_SCALE(24, 32); SETUP_SCALE(32, 8); SETUP_SCALE(8, 32); SETUP_SCALE(64, 64); SETUP_SCALE(64, 32); SETUP_SCALE(32, 64); SETUP_SCALE(64, 48); SETUP_SCALE(48, 64); SETUP_SCALE(64, 16); SETUP_SCALE(16, 64); #undef SETUP_SCALE
Основной псевдокод должен быть таким:
block.rightX ==block.width; // a block initiates from left part of the frame while(block.leftX <=frame.width) //until it hits the right most edge (assuming it moves from left to right for search) for (int i=0;i<block.width();i++) for(int j=0;j< i<block.height();j++) block[i][j] = frame_pixel [(block.leftX+i) % frame.width] [block.leftY+j] //if the block's width passes frame's width, we just take the mod.
Я думаю, что ваша точка зрения относится только к кодеку (x264 или x265), а не к ffmpeg. Вы можете отредактировать свои вопросы немного. Другой совет, если никто не ответит, вы можете отправить электронное письмо разработчикам x265 через их список рассылки. Удачи в проекте!
RawBean 8 лет назад
1
Как мы можем пинговать его? @LordNeckbeard Можете ли вы мне понравиться? Это не обязательно должно быть на H265, но нацеливание на последнюю версию всегда лучше!
Tina J 8 лет назад
0
о, получил его электронную почту ...
Tina J 8 лет назад
0
Извините, но у меня нет ответа на этот вопрос. Возможно, есть список рассылки справки для пользователей x265. Точно так же вы узнаете в следующий раз [перекрестный постинг того же вопроса] (http://stackoverflow.com/questions/37849595/ffmpeg-motion-compensation-and-search) и создание [дублирующих вопросов] (http: // stackoverflow. com / questions / 37870564 / libx265-Компенсация движения-и-cu-traverse) не рекомендуется на сайтах Stack Exchange.
LordNeckbeard 8 лет назад
1
Ага. Я был понимаю. Я попросил своих товарищей по группе задать тот же вопрос для большей наглядности.
Tina J 8 лет назад
0
0 ответов на вопрос
Похожие вопросы
-
3
Windows Media Center (Vista): дополнение или программное обеспечение для обрезки телевизионных запис...
-
3
Обработка видео с картами ATI
-
1
VirtualDub для Linux
-
-
2
Какое использование диска используют видео в формате RAW?
-
1
Приложения Java в браузере вспыхивают / рвутся при прокрутке - почему это так?
-
3
Воспроизведение видео рипов с помощью Windows Media Center
-
5
Как лучше всего смотреть интернет-фильмы (Hulu и т. Д.) На моем телевизоре?
-
4
Вставить Flash видео в документ MS Word (2003 или 2007)
-
10
Принудительно установить собственное разрешение для монитора без PnP в Windows
-
4
Как узнать, почему Windows Media Center не воспроизводит фильм?