Использование HW-декодирования jetson nano - PullRequest
0 голосов
/ 02 августа 2020

У меня есть вопрос о декодировании потоков H.264 с использованием HW-декодера с jetson nano.

a) Использование cv2.VideoCapture + Gstreamer, и это решение скопировало декодированные кадры из Буфер NVVM в буфер ЦП, действительно произошло дублирование копирования для одного декодированного кадра, верно?

b) Jetson nano использовал разделяемую память, тогда память ЦП и ГП одинаковы, верно? зачем нам память GPU? Все, что находится в памяти процессора, отсутствует в памяти графического процессора?

c) Если я использую cv2.Videocapture + Gstreamer с использованием H.264 HW-декодера, декодированные кадры копируются из буфера NVMM в буфер ЦП, в этом случае для одного декодированного кадра мы используем память в 2 раза больше, чем вся память?

d) Если я использую cv2.Videocapture + Gstreamer с использованием H.264 HW декодера , декодированные кадры копируются из буфера NVMM в буфер ЦП, в этом случае. Если я хочу использовать графический процессор для предварительной / постобработки, нам снова нужно скопировать из памяти ЦП в память ГП? в этом случае мы используем в 3 раза больше памяти из всей памяти для одного кадра декодирования?

e) Мы знаем, что недостаток gstreamer + opencv копирует память GPU в память CPU, я согласен с this, но в этой ссылке используется чистый конвейер gstreamer с кодом python. В этом случае декодированные кадры go в память графического процессора без копирования в память процессора, но в той ссылке, которую я выделил (строка 123), декодированные кадры переводятся в формат numpy, в этом случае мы должны использовать память процессора. , Я хочу знать, что в этом случае также мы скопировали gpu mem в cpu mem, с точки зрения производительности они такие же? Чем отличается копирование opencv + gsteamer по этой ссылке? какие из них оптимальны?

f) Если я хочу получить доступ к декодированным кадрам без преобразования в формат numpy, я имею в виду, что я хочу сделать каталог предварительной обработки в памяти графического процессора, как я могу это сделать этот? Нужно ли преобразовать его в формат numpy, а затем выполнить некоторую предварительную обработку для этого на графическом процессоре?

g) Если я хочу подключить USB Coral TPU к jetson nano, можно ли получить доступ из буфера NVMM в USB TPU? Или нужно скопировать данные из буфера NVMM в буфер ЦП, а затем передать их на USB TPU?

...