Для видео MPEG-4, используя исходный код ffmpeg, я хочу получить доступ к остаточным коэффициентам DCT сжатого видеокадра как во время кодирования, так и при декодировании.
Я вижу, что структура AVPacket имеет поле uint8_t* data
, и я обнаружил, что это поле состоит из массива переменной длины. Тем не менее, я не нашел документации о том, что это за массив, кроме того, что это «сжатые данные».
Содержит ли этот массив остаточные коэффициенты DCT?
Если это так, как коэффициенты организованы в массиве? Учитывая, что большинство коэффициентов отбрасываются в сжатом кадре и что массив имеет переменную длину, кажется, что этот массив является неким разреженным представлением?
Если нет, какие данные содержит этот массив? Кроме того, кто-то может указать мне на функцию в исходном коде ffmpeg, где можно получить доступ к коэффициентам DCT? Я пытался отследить от функций более высокого уровня, таких как avcodec_send_packet()
и avcodec_receive_frame()
, но мне было очень трудно найти правильную функцию для доступа к коэффициентам DCT.
Редактировать: В частности, я использую MPEG-4, часть 2.