Расчет макроблоков Разница между макроблоками в эталонном программном обеспечении JM (реализация H.264) - PullRequest
0 голосов
/ 23 декабря 2011

Я изучаю H.264 AVC, используя эталонное программное обеспечение JM. Мне нужно вычислить разницу между макроблоками между макроблоком, который будет закодирован, и тем, который расположен в нем в предыдущем кадре, в наивной реализации H.264, то есть в старых версиях JM. Я немного прочитал код и просмотрел онлайн-документацию, но все тщетно. Как я могу выполнить свою задачу?

1 Ответ

0 голосов
/ 29 апреля 2018

H.264 / AVC не не вычисляет остаток текущего MB (в текущем кадре) с совмещенным в предыдущем кадре. Это более сложный процесс. В качестве краткого примера рассмотрим, что кодер хочет выполнить оценку внешнего предсказания для текущего MB (который называется «P» -кадром). В этой ситуации, во-первых, кодер находит лучший вектор движения (MV) для текущего MB. Другими словами, текущий MB смещается в предыдущем кадре и выбирается наиболее похожий (который имеет наименьшее значение SAD (сумма абсолютной разности) с текущим MB). Затем остаток между этими двумя MB и значениями MV используются для генерации битового потока в кодировке H.264. Вы можете скачать и найти полный учебник здесь . Также вы можете найти функцию прогнозирования MB (на стороне кодера) и изменить то, что вам нужно здесь: lencod> src> mc_prediction.c

...