-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Запись данных из RAM на uSD-карту #21
Comments
Данная задача будет перенесена на бета версию (она для нас не является основной), сейчас все данные было принято выводить в консоль через UART. |
Судя по структурной схеме, на Zynq есть встроенный контроллер для SD карты. У меня несколько вопросов: данные можно передавать в режиме DMA или с помощью процессора? |
Перебросом данных из RAM в SD требуется управлять из процессорного кода, при работе AXI VDMA генерируются прерывания, которые нужно обрабатывать и в процедурах обработки прерываний нужно написать код, который будет отвечать за формирование файлов-видео,. |
В какой программе можно это реализовать? Я так понял, Vivado работает только с ПЛИС. |
Сам код под процессорное ядро пишется в vivado sdk, запускается из vivado, методику тестирования нужно придумать:
|
Я правильно понимаю, что на входе с драгстеров идут 8-битные данные, которые кодируют цвет пикселя, а на выходе после AXI VDMA уже 32 битные данные? Получается, что в одном слове содержится информация о 4 пикселях? Нам как то нужно будет их разделить? |
Вообще с драгстера у тебя будет картинка серых оттенков, т.к. используемая модель драгстера дает инофрмацию только об интенсивности, см. полную спецификацию на драгстер из папки docs. |
Посмотрев разные форматы видео, у меня возникла идея, а можно использовать gif формат? В нем как раз можно создавать картинку или анимацию. У нас же нет аудио дорожки, да и gif, по-моему, легче, чем любые видео форматы. |
Прошу обратить внимание на тот факт что мы работаем с линейкой. Её конечно можно воспринимать как одномерную матрицу очень маленького по нынешним меркам разрешения, тем не менее. Мне кажется писать одну линию в видеофайл это оверкилл. Глазами такое видео не посмотришь, а если писать только чтобы данные эффективно сохранить, то тут возникает сразу две проблемы: потери в качестве и необходимость в интерполяции при каждом чтении, что требует вычислений как и само кодирование. Я бы предложил писать без сжатия в сырьевом формате. Единого стандарта подобного формата нет, да и нам он в принципе не нужен. Поскольку нам известен размер куска данных который мы выдираем, мы можем просто заталкивать его в один толстый файл пока не посчитаем нужным удалить/извлечь его или создать новый. В любой момент времени мы будем гарантированно иметь N сохраненных кусков. N можно будет посчитать просто разделив текущий размер файла на размер куска. |
Думаю, что надо писать пачкой строк типа 1024х768 т.е. например 768 строк размером по 1к пикселов. |
Ребята, что у вас с этой задачей? |
Мы были заняты на той неделе по учебе, поэтому ничего не делали, в эту неделю нам нужно срочно сдать 2 предмета до пятницы, поэтому тоже заняты будем. Есть много вопросов, но первые наработки попытаемся предоставить на следующей неделе. |
Что будут включать в себя первые наработки? |
Постараемся разобраться в RAW формате и сформировать изображение из произвольных данных |
Залил проект с++ в отдельную ветку. Мы решили формировать изображение не в RAW формате, а в формате bmp, так как он наиболее простой. Рассматривали формат DNG, он показался нам непонятным, другие RAW форматы специфичны для определенной камеры. Да и вообще насколько я понял, в RAW формате содержаться только первичные данные с фотоматрицы, и не содержится ничего о размерах изображения, сколь бит на пиксель и т. д. Поэтому мы и решили записывать в формате bmp. |
BMP это конечно хорошо, но нужно:
|
P.S. в ближайшее врея проведу код ревью, напишу где и что мне не нравится. |
Что у вас по этой задаче? |
Проект заморожен, задача прекращается в связи со сворачиванием 218-го. |
На данный момент данные складываются в оперативную память, для того, чтобы мы могли их проверять или как-то в дальнейшем работать с ними, их необходимо сохранять на uSD-карту в Standalone-приложении.
The text was updated successfully, but these errors were encountered: