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

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

On 7/18/2022 at 2:05 PM, mantech said:

в 90% машин такое если и будут ставить, то лет через 10

i.mx6 для автомобильных применений появились уже лет 10 назад

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


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

On 7/18/2022 at 1:47 PM, repstosw said:

По ходу облом с декодированием h264. Просмотрел Tina SDK для T113-s3, там есть libcedarx и libcedarc - оба закрытые в блобах.

Тут  смотрели?

On 7/18/2022 at 1:47 PM, repstosw said:

Так просто заставить декодер олвиннера работать, скормив ему поток - НЕ выйдет.  Необходимо парсерами проходиться по фреймам и формировать "подпорки" - все необходимые вспомогательные данные для декодера и растащить их по регистрам. Задача не из лёгких.

Согласен. С mpeg1 и mpeg2 долго бодался, писал свой парсер. Пока закончил на том, что нормально воспроизводятся файлы без b-фреймов (в ffmpeg это режим кодирования по умолчанию)

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


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

On 7/19/2022 at 12:16 AM, Ozelot said:

Тут  смотрели?

  

За сегодня аналогичных репозиториев много видел! )))  Проблема в том, что не хватает информации как заполнять контекст и в какой последовательности вызывать.

  

On 7/19/2022 at 12:16 AM, Ozelot said:

Согласен. С mpeg1 и mpeg2 долго бодался, писал свой парсер. Пока закончил на том, что нормально воспроизводятся файлы без b-фреймов (в ffmpeg это режим кодирования по умолчанию)

 

Про B-фреймы можно забыть. Потому что из аппаратных корок мало их кто вообще воспроизводить может.  Только I и P.

 

И чтобы не бодаться с парсерами, демуксами всякими, надо в ffmpeg конвертить прямо в сырой поток: файл с расширением - m2v.

  

http://dvdnav.mplayerhq.hu/dvdinfo/mpeghdrs.html

 

 

У меня MPEG2-декодер стал подавать признаки жизни.  Пока безупречно показывает самый первый кадр, затем всё сыпется по причине того, что парсер фреймов пока неправильно сделал.

 Особо порадовало, что в режиме MPEG2 тоже можно тайлы распрямить декодером (детайлизатор не нужен):

  

        MACC_VE_OUTPUT_FORMAT&=~7;
        MACC_VE_OUTPUT_FORMAT|=4;                 //NV12

        MACC_VE_EXTRA_OUT_FMT_OFFSET&=~(3UL<<30);
        MACC_VE_EXTRA_OUT_FMT_OFFSET|=(1UL<<30);  //use special format from MACC_VE_OUTPUT_FORMAT

 

image.png.f1f793b4c67cdfeee8191a3ddc2b8c95.png

 

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

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


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

On 7/18/2022 at 6:03 PM, repstosw said:

Про B-фреймы можно забыть. Потому что из аппаратных корок мало их кто вообще воспроизводить может.  Только I и P.

Allwinner-овский декодер замечательно поддерживает В-фреймы. Но там важно правильно построить цепочку воспроизводимых фреймов, т.к. Р-фреймы в потоке приходят раньше.

On 7/18/2022 at 6:03 PM, repstosw said:

 Особо порадовало, что в режиме MPEG2 тоже можно тайлы распрямить декодером (детайлизатор не нужен)

В F1C к сожалению эта фишка не работает (пробовал на jpeg-декодере, надо будет проверить и в mpeg, но сомневаюсь, что будет толк)

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


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

On 7/19/2022 at 1:03 AM, repstosw said:

Пока безупречно показывает самый первый кадр, затем всё сыпется по причине того, что парсер фреймов пока неправильно сделал.

 Особо порадовало, что в режиме MPEG2 тоже можно тайлы распрямить декодером (детайлизатор не нужен):

 

On 7/19/2022 at 1:48 AM, Ozelot said:

В F1C к сожалению эта фишка не работает (пробовал на jpeg-декодере, надо будет проверить и в mpeg, но сомневаюсь, что будет толк)

 

Удалось добиться воспроизведения MPEG2 без артефактов.  Причина - злую шутку сыграло распрямление тайлов декодером: так как выходной буфер может использоваться декодером как входной (для предсказания), то декодер начинает неправильно работать, если ему на вход подают распрямлённый фрейм.

 

Пришлось использовать детайлизатор на ассемблере ( tiled_yuv.S ) перед отрисовкой на дисплей:

 

tiled_to_planar(frame->luma_buffer  ,Screen_YBUF,720,720,576  );
tiled_to_planar(frame->chroma_buffer,Screen_CBUF,720,720,576/2);

 

 По идее нужно в DE включить аппаратный детайлизатор.  Но есть ли он в T113-s3 ? :wink:

 

 

Что касается парсера сырого потока MPEG2, так он вообще вышел детским:  от начала фрейма ищем последовательность байт 0,0,1 пока не попадётся последовательность 0,0,1,1 затем ищем до последовательности 0,0,1, "последний слайс" (посл. слайс = высота/16).  Вычисляем точку конца, вычисляем размер фрейма, сдвигаем указатель старта в положение нового будущего фрейма.

  

Не понимаю, нафига автор сорцов тащит за собой громоздкого монстра FFMPEG,  ради того чтобы пропарсить элементарный поток ?  :lol2:

 

https://github.com/jemk/cedrus/tree/master/mpeg-test

 

Делаю сырой поток через ffmpeg вот так:

 

ffmpeg -ss 00:16:24 -t 00:00:03 -i input.mkv -an -f mpeg2video -vcodec mpeg2video -vf "scale=720:576:flags=lanczos:force_original_aspect_ratio=decrease,pad=720:576:(ow-iw)/2:(oh-ih)/2,setsar=1" -r 30 -pix_fmt yuv420p -qmin 3 -qmax 3 -y output.m2v

 

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

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


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

On 7/19/2022 at 8:02 AM, repstosw said:

Удалось добиться воспроизведения MPEG2 без артефактов.

Поздравляю. Теперь ждем со звуком :)

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


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

On 7/19/2022 at 5:30 PM, Ozelot said:

Поздравляю. Теперь ждем со звуком :)

   

Про звук давно в курсе, что его надо с видео синхронизировать.  Храню звук и видео в отдельных файлах, при воспроизведении синхронизирую их. Ибо не хочу с контейнерами заморачиваться.

Делал так ещё со времён создания своего nanoPlayer :biggrin:

  

 

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


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

On 7/19/2022 at 12:33 PM, repstosw said:

Делал так ещё со времён создания своего nanoPlayer

Помню. Это я так подколол :)

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


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

On 7/18/2022 at 3:20 AM, Ozelot said:

Наверно стОит проверить это на V3S...

 

Проверил кодер H264 На V3s.  Всё также глухо как и с JPEG кодированием/декодированием: нулевая реакция на команду запкска + регистр длины выходного буфера нулевой.

 

---

 

Запустил эзернет на физическом уровне (V3s): передаёт и принимает пакеты по прерываниям. Задал фильтрацию по MAC, а то с ПК летит всякий трэш в ответ.

 

Снифер пакетов - Wireshark

Генератор пакетов - Colasoft Packet Builder

 

image.thumb.png.79d3a5c88c3c12230f456b2884282d44.png

 

image.thumb.png.0c5940fd21e15a25cae90fdd1ac5502b.png

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

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


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

On 7/21/2022 at 1:09 PM, repstosw said:

Проверил кодер H264 На V3s.  Всё также глухо как и с JPEG кодированием/декодированием: нулевая реакция на команду запкска + регистр длины выходного буфера нулевой.

Жаль. Были планы на него...

On 7/21/2022 at 1:09 PM, repstosw said:

Запустил эзернет на физическом уровне (V3s)

Подвязывайте к LwIP и ваш sdk станет в разы востребованнее.

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


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

В 21.07.2022 в 14:41, Ozelot сказал:

LwIP и ваш sdk станет в разы востребованнее.

И еще нормальный УСБ стек - так вообще шикарно)))))) Никаких линуксов не надо...

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

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


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

On 7/21/2022 at 3:57 PM, mantech said:

Никаких линуксов не надо...

Еще 65536 вёдер, ага. А под линуксом внезапно все работает прямо здесь и сейчас.

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


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

В 21.07.2022 в 16:09, aaarrr сказал:

А под линуксом внезапно все работает прямо здесь и сейчас.

Да лишь бы в радость, только вот программирование без него в разы понятнее, проще и легче в понимании. Разумеется, если это не питономаньяки мигают лампочками, и отправляют пакетики в сетевой порт))) Можно без проблем пользоваться подходящей ИДЕ и не быть красноглазиком, которому командные строки по ночам снятся))). 

Ну и вишенка - свою прогу я могу вместе с потрохами и полноэкранной графикой уместить в камень с 64Мб ОЗУ, а ПЗУ подойдет мелкая SPI флешка на 4Мб в SO-8, а не монстроидальная EMMC, которую хрен разведешь на плате и запаяешь с ее 0.5мм шарами...

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

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


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

On 7/21/2022 at 4:37 PM, mantech said:

программирование без него в разы понятнее, проще и легче в понимании

Школьнику вполне доступно.

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


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

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

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

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

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

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

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

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

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

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