Я написал приложение, которое обрабатывает видео (720*576 пикселей, 30 кадров в секунду, формат RGB), используя OpenCV
формат Java
. Я вычисляю только 5 переменных int в результате обработки каждого кадра. Я хотел бы сохранить эти 5 переменных int с текущим кадром в наборе данных, и поэтому мне нужно делать это несколько раз в секунду (30 раз в секунду было бы идеально, но я мог бы сделать меньше, сгруппировав данные, я думаю ...).
Какой будет правильный выбор базы данных для такой вещи? Я подумал HDF5
, будет ли это подходящим решением?
Почти все будет работать.
Проблема «30 раз в секунду» должна быть в пределах возможностей любого формата файла базы данных или набора данных. Если есть проблемы с отслеживанием, их можно решить:
путем группирования вставок (для базы данных или библиотеки доступа),
путем записи в буферизованный поток или
используя очередь в памяти и отдельные потоки Java для обработки кадров и сохранения извлеченных данных. (Предполагая, что вы обрабатываете кадры в режиме реального времени.)
Я бы выбрал базу данных/библиотеку/формат, основываясь на других вещах, которые вы хотите. Производительность не должна быть проблемой для того, что вы предлагаете сделать.
Вы можете легко (в большинстве современных систем) записать 5 целочисленных значений 4 запятых и перевести строку в файл на жестком диске со скоростью 30 операций записи в секунду и с гораздо меньшими накладными расходами, чем БД. Попробуйте сделать это проще и записать в CSV-файл — большинство баз данных могут без проблем импортировать из CSV-файла, если он понадобится вам позже в базе данных.
Рауль