Где изменить эталонный код для извлечения векторов движения из HEVC-кодированного видео

Так что этот вопрос задавался несколько раз, но я думаю, что мои навыки C ++ слишком несовершенны, чтобы по-настоящему оценить ответы. Что мне нужно, так это способ начать с HEVC-кодированного видео и закончить CSV, в котором есть все векторы движения. Пока что я скомпилировал и запустил эталонный декодер, кажется, все работает нормально. Я не уверен, имеет ли это значение, но меня интересуют векторы движения как удобный способ анализа движения в видео. Сначала я планирую усреднить MV в каждом кадре, чтобы просто получить значение, выражающее что-то о средней величине движения в этом кадре.

Обсуждение Вот рассказывает мне о методах класса TComDataCU, с которыми мне нужно взаимодействовать, чтобы получить MV, и рассказывает о том, как перебирать CTU. Но я все еще не совсем понимаю следующее:

1) какую информацию возвращают эти методы MV и в каком формате? С моим ограниченным знанием, я предполагаю, что будет около 7 значений, связанных с MV: номер кадра, индекс, идентифицирующий макроблок в этом кадре, размер макроблока, координата x макроблока (вероятно, верхний левый угол?), координата y макроблока, координата x вектора и координата y вектора.

2) где в коде нужно разместить новые операторы, которые сохраняют данные? Я подумал, что в TComDataCU.cpp должно быть какое-то место, где я могу поместить строки, которые печатают данные, которые я хочу в файл, но я запутался, когда значения действительно определены и каковы они. Объявления переменных выглядят так:

  // create motion vector fields

m_pCtuAboveLeft      = NULL;
m_pCtuAboveRight     = NULL;
m_pCtuAbove          = NULL;
m_pCtuLeft           = NULL;

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]