Индексирование большого файла видеоданных, который приходит пакетами

Я не уверен, что слово «индексация» уместно в данном контексте, но представьте себе эту процедуру. Вы получаете свой видеофайл не в формате .mov или .mp4, а в виде серии пакетов определенного размера, скажем, 1024 байта. Пакет содержит интенсивность пикселей для 3 каналов, расположенных таким образом, что каждый пакет соответствует, скажем, 2 полным видеокадрам, а затем 75% от 3-го. Таким образом, оставшиеся 25% 3-го кадра придут в следующем пакете вместе с еще 2 кадрами и 50% какого-то следующего кадра.

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

Я вижу, что с точки зрения видео, где все кадры имеют одинаковый размер, может быть проще просто продолжать читать пакеты до тех пор, пока кадр известного не будет завершен, сохранить его и затем перейти к следующему. Моя проблема в том, что мое «видео» захвачено лидаром, поэтому «кадры» могут содержать разное количество точек, поэтому вес принимает немного другой размер. Однако я знаю, когда кадр начинается и заканчивается, и я как-то связан с углом поворота лидара, который я получаю из пакетов.


person mihsamusev    schedule 14.01.2020    source источник
comment
Это не имеет значения. Вы можете хранить один кадр в файле, объединять кадры и хранить отдельную таблицу их размеров или просто сканировать файл каждый раз, когда вы его читаете. Или пишите размер перед каждым кадром в потоке. Или засунуть каждый кадр в протобуф. Или миллион других вариантов. Это полностью зависит от требований вашего приложения и доступных ресурсов.   -  person szatmary    schedule 14.01.2020


Ответы (1)


Как упомянул @szatmary, все зависит от требований приложения. Поскольку вы знаете, когда кадр начинается и заканчивается, я бы порекомендовал вам создать массив (список/вектор/коллекция зависит от того, какой язык вы используете) и заполнить его фреймами. Затем вы можете выполнить обработку или переписать его в файлы, с которыми вы можете работать.

person Lukashou-AGH    schedule 27.01.2020