Я пытаюсь использовать OpenCV для чтения и отображения видеофайла 4K. Та же самая программа, очень простая, показанная в приложении A, отлично работает при отображении 1080 видео, но при обновлении до 4K видео наблюдается заметное отставание.OpenCV и 4K Видео
Очевидно, что в любой операции имеется 16x пикселей.
Теперь я бегу вообще на ПК с отличными характеристиками, встроенной графикой, оперативной памятью 4Gb & i3 Процессор и жесткий диск (не SSD). Я тестировал это на ПК с 8 ГБ оперативной памяти, i5 & SSD, и хотя используется 3.XGb ОЗУ, это, кажется, в основном программа с интенсивным использованием процессора и максимизирует все мои ядра на 100% даже на лучшем ПК.
Мои вопросы: (чтобы сделать этот пост конкретные)
- Является ли это что-то, что помогло бы с помощью операций GPU?
- Является ли это проблемой, которая будет решена путем обновления до ПК с лучшим процессором? Практически это приложение можно запускать только на i7, так как я не думаю, что мы собираемся покупать серверный CPU ...
- Это чертеж на экране или просто чтение его с диска, вызывающего помедленнее?
Если у кого-то есть опыт использования 4K с OpenCV, это также было бы полезной информацией.
Приложение A
int main()
{
VideoCapture cap(m_selected_video);
if (!cap.isOpened()) // check if we succeeded
{
std:cout << "Video ERROR";
}
while (_continue)
{
Mat window1;
cap >> window1; // get a new frame from camera
imshow("Window1", window1);
if (waitKey(30) >= 0) break;
}
}
Вы понимаете, что вы ждете 30 миллисекунды на каждой итерации, которые могут работать нормально, если у вас есть небольшое изображение для показа, но не так хорошо, когда ему нужно отображать 16x пикселей по каждому кадру. –
Я не осознал, что ожидаю 30 мс.Однако, понижая это до 1 мс, который, я считаю, является самым низким, вы можете подождать, не делает никакой (заметной) разницы. – GPPK
Можете ли вы воспроизводить видео с помощью VLC или ffplay? – Cornstalks