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

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

В 03.08.2022 в 22:43, GenaSPB сказал:

Кстати, а как у OTG выбирается тот пин, на который заведено VBUS?

А вот тут не подскажу, на аллвиннерах с ним дело не имел..

Кстати, если будете запускать musb device, то этот 0й бит host route, нужно снова установить в 1.

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

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


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

On 8/3/2022 at 10:45 PM, mantech said:

то этот 0й бит host route, нужно снова установить в 1.

Учту. Но я так понимаю оно изначально стоит в "1" ?

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


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

В 03.08.2022 в 22:51, GenaSPB сказал:

Но я так понимаю оно изначально стоит в "1" ?

Именно так. 1 означает, что phy0 подключено к контроллеру musb.

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


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

Запустил декодер  H264 на V3s (доска Lichee Pi Zero). :sun_bespectacled:

С аппаратной де-тайлизацией и конверсией YUV в RGB. Без посредников и без участия CPU.

 

 

Существенных отличий от T113-s3 практически нет, разве что включение клоков отличается:

 BUS_SOFT_RST_REG1&=~1;             //VE Reset assert
 PLL_VE_CTRL_REG|=(1UL<<31);        //enable VE_PLL 297 MHz
 VE_CLK_REG=(1UL<<31)|((1-1)<<16);  //clock on /N=1 297 MHz
 BUS_CLK_GATING_REG1|=1;            //Gating Clock for VE
 DRAM_CLK_GATING_REG|=1;            //VE DCLK GATING
 SRAM_CFG_REG0=0x7FFFFFFF;          //enable SRAM for VE
 BUS_SOFT_RST_REG1|=1;              //VE Reset de-assert

 

Обязательно разрешать SRAM  для VE, иначе работать НЕ будет.

И регистры CSC куда-то съехали на другие смещения (подсмотрел в Linux):

#define CSC_REGS 0x011AA050

Декодеру совершенно фиолетово, какая DDR память у V3s. Ради правильности поставил DDR2 16 bit:

DDRTYPE_DDR2_16BITS

Скорость работы декодера V3s меньше, чем у T113-s3 из-за более низкой тактовой частоты памяти. Но намного выше, чем у софтовой реализации, что весьма очень радует. :wink:

Видео 720 x 576, CRF=23. Замеры времени декодирования фреймов:

3.118833 ms, 320.632721 FPS
2.817167 ms, 354.966583 FPS
2.091333 ms, 478.163849 FPS
3.141833 ms, 318.285492 FPS
3.040833 ms, 328.857208 FPS
2.146500 ms, 465.874695 FPS
2.929500 ms, 341.355194 FPS
2.930500 ms, 341.238708 FPS
2.831000 ms, 353.232086 FPS
2.163167 ms, 462.285217 FPS
2.681500 ms, 372.925598 FPS
2.144500 ms, 466.309174 FPS
2.643000 ms, 378.357941 FPS
2.943833 ms, 339.693146 FPS
2.890500 ms, 345.960907 FPS
2.640333 ms, 378.740051 FPS
2.463333 ms, 405.953979 FPS
2.251333 ms, 444.181213 FPS
2.696000 ms, 370.919891 FPS
2.699833 ms, 370.393219 FPS
2.629167 ms, 380.348663 FPS
2.251667 ms, 444.115479 FPS
2.703833 ms, 369.845276 FPS
2.643833 ms, 378.238678 FPS
2.613500 ms, 382.628662 FPS
2.256833 ms, 443.098724 FPS
2.647000 ms, 377.786163 FPS

Что касается декодера MPEG2, то его нет в V3s.  И очевидно, JPEG декодера тоже. Потому что (M)JPEG декодер вписан в регистры MPEG, которых нет:

https://patchwork.kernel.org/project/linux-arm-kernel/cover/[email protected]/#23765089 

Quote
First patch extends cedrus capability to all decoders because V3s missing MPEG2 decoder.

Only H.264 decoder working - MPEG and H.265 unsupported by V3s, JPEG/MJPEG still unimplemented, encoder unimplemented.

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

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


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

:dance4: Запустил кодер H264(AVC) на V3s. :dance4:

 

Из подводных камней: нужно было установить биты 6 и 7 в регистре:

void *ve_get(int engine, uint32_t flags)
{
 Writel(0x00110000 | (engine & 0xf) | (flags & ~0xf) | (1<<7) | (1<<6), VE_BASE + VE_CTRL);
 return (void*)VE_BASE;
}

 

Исходники брал эти: https://github.com/jemk/cedrus/tree/master/h264enc

 

Так как камеру пока не подключил, использовал SD-карту и записал на неё непожатые кадры видео в формате NV12:

Quote

ffmpeg -t 00:00:01.5 -i video.mp4 -c:v rawvideo -pix_fmt nv12 -qscale:v 0 -an -y in.yuv

 

Выигрыш в сжатии получился колоссальным - 1,5 секунды видео 640x480 из 21 МБ сжалось до 804 кБ: :ok:

Дата создания выходного файла out.264 - захардкожена в FatFs : 09.07.2022 0:00

1.png.c4a86f9aa07b729842477d276d29ef16.png

 

Замерил скорость кодирования фреймов 640x480 - очень даже хорошо:

Quote

2.467833 ms, 405.213745 FPS
2.358833 ms, 423.938385 FPS
2.361667 ms, 423.429779 FPS
2.368333 ms, 422.237854 FPS
2.374833 ms, 421.082184 FPS
2.365833 ms, 422.684052 FPS
2.364167 ms, 422.982025 FPS
2.369500 ms, 422.029968 FPS
2.363167 ms, 423.161011 FPS
2.368000 ms, 422.297302 FPS
2.369667 ms, 422.000275 FPS
2.381000 ms, 419.991608 FPS
2.366167 ms, 422.624512 FPS
2.372167 ms, 421.555542 FPS
2.370167 ms, 421.911255 FPS
2.364667 ms, 422.892578 FPS
2.375000 ms, 421.052643 FPS
2.378667 ms, 420.403595 FPS
2.382500 ms, 419.727173 FPS
2.373500 ms, 421.318726 FPS
2.290667 ms, 436.554138 FPS
2.373167 ms, 421.377899 FPS
2.371500 ms, 421.674042 FPS
2.376000 ms, 420.875427 FPS
2.382833 ms, 419.668457 FPS
2.614167 ms, 382.531067 FPS
2.383000 ms, 419.639099 FPS
2.378167 ms, 420.491974 FPS
2.371500 ms, 421.674042 FPS
2.371333 ms, 421.703674 FPS
2.299167 ms, 434.940186 FPS
2.379167 ms, 420.315247 FPS
2.290167 ms, 436.649445 FPS
2.374333 ms, 421.170868 FPS
2.386333 ms, 419.052948 FPS
2.377000 ms, 420.698364 FPS
2.376167 ms, 420.845886 FPS
2.373667 ms, 421.289154 FPS
2.378333 ms, 420.462494 FPS
2.378167 ms, 420.491974 FPS
2.378667 ms, 420.403595 FPS
2.380333 ms, 420.109222 FPS
2.382000 ms, 419.815277 FPS
2.371000 ms, 421.762970 FPS
2.378333 ms, 420.462494 FPS
2.368167 ms, 422.267578 FPS
2.375833 ms, 420.904938 FPS

 

Приложил выходной поток, даваемый V3s (видео открывается в MPC-HC player или VLC media player):

out.zip

 

Медиаинфо:

Video: MPEG4 Video (H264) 640x480 25fps [V: h264 main L4.1, yuv420p, 640x480]

General
Format                         : AVC
Format/Info                    : Advanced Video Codec
File size                      : 803 KiB

Video
Format                         : AVC
Format/Info                    : Advanced Video Codec
Format profile                 : [email protected]
Format settings, CABAC         : Yes
Format settings, RefFrames     : 1 frame
Width                          : 640 pixels
Height                         : 480 pixels
Display aspect ratio           : 4:3
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Scan type                      : Progressive

 

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

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


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

Запустил  SPI у V3s в режиме мастера и микросхему SPI NOR W25Q16 на нём.

Написал свой загрузчик, который грузит в DDR приложение.

Загрузчик сидит в первых 16 кБ микросхемы SPI NOR: 0x00000000.. 0x00003FFF

Приложение сидит с 16-го килобайта в SPI NOR: 0x00004000 .. 0x001FFFFF

Размер приложения -  4 байта на месте 5-го вектора прерывания (зарезервировано)

Загрузчик и приложение записываю в SPI NOR с помощью обновлённой утилиты sunxi-fel:

 

sunxi-fel -p spiflash-write 0x00000000 loaderNOR.V3s

sunxi-fel -p spiflash-write 0x00004000 app.bin

 

Плюс написал свой патчер, который вписывает в приложение его размер(на место 5-го вектора).

Проверял SPI NOR  до 75 МГц - работает.  По даташиту вообще можно на 80 МГц.

Всё работает как часы, и я рад! :sun_bespectacled:

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


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

А где есть внятное описание формата заголовка?
давно пора сделать свой вписыватель контрольной суммы...

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


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

1 hour ago, GenaSPB said:

А где есть внятное описание формата заголовка?
давно пора сделать свой вписыватель контрольной суммы...

Вы что имеете ввиду?

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

Для T113-s3 пока ещё не делал загрузчик, x-fel расслабил (он поддерживает загрузку в DDR).

Исходник расчёта контрольной суммы для eGON.BT0 видел на гитхабе

 

Первое что попалось - https://gist.github.com/hno/dae626bc7765dcad2dae

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

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


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

Да. Я про заголовок того что в qspi пишется с сигнатуррй eGON.BT0

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


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

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

Загрузчик и приложение записываю в SPI NOR с помощью обновлённой утилиты sunxi-fel:

Вопрос - как-то удалось на winbond-овские флешки его записать? У меня прекрасно пишет на флешки MXIC, а винбондов лежит дофига, но увы и ах не пишет на них...

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

помощью обновлённой

может в этом дело, не дадите ссылку на обновленную версию?

5 часов назад, GenaSPB сказал:

пора сделать свой вписыватель контрольной суммы...

А смысл? Тот что есть прекрасно справляется со своей задачей))) К тому же это нужно только в бутлоадере.

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

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


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

57 minutes ago, mantech said:

Вопрос - как-то удалось на winbond-овские флешки его записать

Массово применяю W25Q128JVEIQ - обычным xfel-windows-v1.2.9

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

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


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

Наверное проблемы с чипами которые не умеют jedec информацию отдавать?

Вы бы название хоть сказали...

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

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


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

46 minutes ago, GenaSPB said:

W25Q128JVEIQ

У "Q" четырехпроводный режим гвоздями прибит...

 

1 hour ago, mantech said:

не пишет на них...

может, в этом дело?

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


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

Не прибит. В однобитном со стандартным набором работает. 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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