Перейти к содержанию
    

Allwinner T113-s3 уделал HiFi4 DSP. Смеяться или плакать?

On 12/31/2022 at 1:08 AM, sasamy said:

не сбрасывается после сброса через VE_CTRL  

0x7 = place in #reset

Через VE_RESET сбрасывает

https://linux-sunxi.org/VE_Register_guide#MACC_VE_RESET

	/* Activate JPEG engine. */
	cedrus_engine_enable(ctx);

	cedrus_write(dev, VE_RESET, 0x1);
	cedrus_write(dev, VE_RESET, 0x0);

	addr_y = vb2_dma_contig_plane_dma_addr(&run->src->vb2_buf, 0);
	cedrus_write(dev, VE_ISP_INPUT_LUMA, addr_y);
...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/12/2022 at 3:57 PM, sasamy said:

зачем что-то резать если они выложили buildroot а там всё как на ладони

https://github.com/mangopi-sbc/buildroot-d1x-t113/tree/main/buildroot/board/allwinner-generic/sun8i-t113/bin

Page not found ... Не могли бы Вы в почту прислать? Заранее признателен.. rain62ster@ гмайл ком

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/17/2023 at 6:41 PM, nanorobot said:

Page not found ... Не могли бы Вы в почту прислать?

у меня его тоже нет, есть похожий

https://github.com/DongshanPI/buildroot_100ask_t113-pro

мы этим пользовались только на начальном этапе запуска прототипа

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, sasamy said:

Спасибо, посмотрю

Изменено пользователем nanorobot

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Освоил трансивер Si4463, приделал его к SPI V3s.

Результатами доволен: передаётся сжатое видео 480x272 15 FPS + сжатое аудио 24 кбит/c.

Скорость 1000 кбит/c (500 ксимволов в секунду), модуляция 4FSK, длина буфера 8 кБ.

image.png.f21f092e446c7954bea48691c2566f0a.png

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 минуты назад, repstosw сказал:

Результатами доволен: передаётся сжатое видео 480x272 15 FPS + сжатое аудио 24 кбит/c.

Если не секрет, куда это можно применить на практике? Или это просто хоббийные изыскания...

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, mantech said:

Если не секрет, куда это можно применить на практике? Или это просто хоббийные изыскания...

Пока это всего лишь макеты устройств (приемник и передатчик), с целью удовлетворить академический интерес. 🙂

Сейчас используются модули RF4463-PRO, у них мощность до 20 дБм.

Ожидаю более мощных модулей RF4463F30, с мощностью 30 дБм.

Далее - замер дальности.  И если результаты меня устроят, сделаю пару приемопередатчиков для ведения двусторонней видеосвязи.

Дисплей возьму 480x272, такие есть для Lichee/Mango Allwinner плат, у них  распиновка шлейфа такая же как и у LCD 800x480.

 

CMT2300A (160x128, 10-12 FPS (позже увеличил до 15 FPS), изображение растянуто на весь экран, 250 кбит/c, буфер 2 кБ):

 

Si4463 (480x272, 15 FPS, изображение не растянуто, позже подтюнил aspect под соотношение кадра, 1000 кбит/c, буфер 8 кБ):

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вернулся на какое-то время к T113-s3.  Обнаружил такую вещь, что включенный CSC (Color Space Converter) влияет на обе плоскости: на видео-плоскость(layer0, YUV420) и на графическую плоскость (layer1, ARGB8888):  изображение  зеленеет.

 

Кто знает, как задать работу CSC только на одну плоскость(layer0) без влияния на вторую?  

 

Надо в одном слое выводить видео в YUV420, а в другом слое рисовать G2D картинки в формате ARGB888

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Похоже, CSC включается ЗА блендером...

image.thumb.png.1b2eb18f4f6e1b598cebbc4e526f06c4.png

А поставить нужный формат одному слою?

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

34 minutes ago, GenaSPB said:

А поставить нужный формат одному слою?

так и сделано:

слой 0 - YUV420

слой 1 - ARGB8888

 

При попытке  нарисовать на слое 1 цвета конвертятся из ARGB в AYUV.  Тоесть полупрозрачность сохраняется,  а RGB превращаются в YUV соответственно.

Если выключить CSC, то отрисовка в слой 1 идёт корректно,  но видео в слое 0 выглядит неправильно (в других цветах)

 

Можно отказаться от CSC и обоим плоскостям задать ARGB8888 и помощью G2D отконвертить видео из YUV в RGB - работает.

Но одновременно с поворотом видео на 90 градусов не получается: приходится вначале поворачивать,  потом конвертировать (два вызова G2D_BLT вместо одного)

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

38 minutes ago, repstosw said:

Если выключить CSC, то отрисовка в слой 1 идёт корректно,  но видео в слое 0 выглядит неправильно (в других цветах)

Найдите правильный код для этого слоя... CSC не включать.
Попробуйте в минимальном наборе (помните историю с color key & stretch - когда заработало без linux sdk)

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, GenaSPB сказал:

Найдите правильный код для этого слоя... CSC не включать.

Может лучше сделать оба слоя RGB а видео конвертировать из YUV с помощью g2d?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С кадровой частотой? Ой... Оно только этим заниматься и будет.

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 hours ago, GenaSPB said:

Найдите правильный код для этого слоя... CSC не включать.

Уже давно найден:

#define DE2_FORMAT_YUV420_V1U1V0U0 0x08

Только этого недостаточно.  Оно влияет только на распределение байт в видеопамяти. Без включенного CSC цвета будут неправильными.  В CSC задаются 12 коэффициентов матрицы преобразования YUV в RGB (для правильного отображения в TCON.   Дисплей же RGB, а не YUV.)

 

9 hours ago, GenaSPB said:

Попробуйте в минимальном наборе (помните историю с color key & stretch - когда заработало без linux sdk)

К сожалению с CSC - не этот случай.

 

4 hours ago, mantech said:

Может лучше сделать оба слоя RGB а видео конвертировать из YUV с помощью g2d?

Так и делал.  Но теперь нужна портретная ориентация дисплея - приходится всё разворачивать на 90 градусов.  А G2D не может одновременно поворачивать и конвертить из YUV в RGB - изображение расслаивается на три фрагмента.   Поэтому за 1 раз G2D:  либо конвертит, либо поворачивает.

 

Радикальное решение: повернуть всю видеопамять на 90 градусов,  чтобы считывание точек из памяти было вдоль меньшей стороны (портретная ориентация дисплея).  Интересно, DE может такое?

 

Если удастся всё глобально развернуть, то можно G2D вызвать с конверсией и отказаться от YUV/CSC (т.е.  оба слоя сделать ARGB и не париться).

3 hours ago, GenaSPB said:

С кадровой частотой? Ой... Оно только этим заниматься и будет.

Он и так  этим занимается - поворот на 90 градусов.  Только это всё оформленно в обработчик прерывания, и никто ничего не ждёт в основном цикле программы.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, repstosw сказал:

Так и делал.  Но теперь нужна портретная ориентация дисплея - приходится всё разворачивать на 90 градусов.  А G2D не может одновременно поворачивать и конвертить из YUV в RGB - изображение расслаивается на три фрагмента.   Поэтому за 1 раз G2D:  либо конвертит, либо поворачивает.

Ну да, чет об этом я не подумал)))  У меня раньше не было аппаратного ускорения (NEON не в счет), поэтому моя граф. либа рисовала с учетом ориентации сразу, притом, что экран был всегда по умолчанию горизонтально ориентирован, а вот картинки - да, приходилось поворачивать "вручную"...

7 часов назад, repstosw сказал:

Радикальное решение: повернуть всю видеопамять на 90 градусов,

Опа)) Интересно, как это, там же линейное считывание с простым инкрементом адреса...

ЗЫ. Интересно, а в линуксах как делается поворот?

7 часов назад, repstosw сказал:

Если удастся всё глобально развернуть, то можно G2D вызвать с конверсией и отказаться от YUV/CSC (т.е.  оба слоя сделать ARGB и не париться).

А если g2d запускать по-очереди, конверт, потом поворот? Или по скорости тормозит?

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...