_Евген_ 1 19 июля Опубликовано 19 июля (изменено) · Жалоба 19 часов назад, _Евген_ сказал: Знатоки, кто подскажет почему при попытке прочитать состояние из регистра 0x01C0E000 (VE_BASE+VE_CTRL) в F1C100s, да собственно и любого регистра группы VE_BASE - программа зависает?С доступом к регистрам других блоков (TVE,TVD...) проблем нет! Отладчика нет - что-то считать после этого не знаю как (загружаю через sunxi-fel exec). Начальная настройка следующая(запуск все в том же проекте F1C100s_projects/projects/tv_in_test/main.c😞 ve_init(){ clk_pll_init(PLL_VE, 99, 8); // 24*99/8 = 297MHz <- copy-past от TVD clk_pll_enable(PLL_VE); clk_enable(CCU_BUS_CLK_GATE1, 0); // VE bus clock clk_enable(CCU_DRAM_CLK_GATE, 0); // DRAM access clock intc_disable_irq(IRQ_VE); clk_reset_clear(CCU_BUS_SOFT_RST1, 0); u32 ctrl=readl(VE_BASE + VE_CTRL); <- тут виснет Помог код(рабочий) из проекта jpgdec (автор ozelot): /* Hardware JPEG Decoding */ CCU->PLL_VE_CTRL = (1u << 31) | (1 << 24) | (12 << 8); // 312MHz while(!(CCU->PLL_VE_CTRL & (1 << 28))); CCU->VE_CLK |= (1u << 31); CCU->BUS_CLK_GATING1 |= 1; CCU->BUS_SOFT_RST1 &= ~1; CCU->BUS_SOFT_RST1 |= 1; CCU->DRAM_GATING |= 1; SYS->CTRL[0] &= 0x80000000; SYS->CTRL[0] |= 0x7fffffff; SYS->CTRL[1] &= 0xefffffff; printf("VE Version 0x%X 0x%X\r\n", VE->VERSION >> 16, VE->CTRL); По итогу для считывания версии: // Configure video engine clocks clk_pll_init(PLL_VE, 99, 8); // 24*99/8 = 297MHz <- работает и с 312МГц от ozelot clk_pll_enable(PLL_VE); CCU->VE_CLK |= (1u << 31); // вставлено из jpgdec!TODO: -> clk_ve_config in f1c100s_clock! clk_enable(CCU_BUS_CLK_GATE1, 0); // VE bus clock clk_enable(CCU_DRAM_CLK_GATE, 0); // DRAM access clock clk_reset_set(CCU_BUS_SOFT_RST1, 0); clk_reset_clear(CCU_BUS_SOFT_RST1, 0); u32 version=readl(VE_BASE + VE_VERSION) >> 16; Изменено 19 июля пользователем _Евген_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 20 июля Опубликовано 20 июля · Жалоба В 17.07.2024 в 21:16, Ozelot сказал: В F1C есть только jpeg-кодер. Разобраться с ним у меня ушло пару дней. Свои исходники по этой теме выкладывать не буду Если не исходным кодом, то советом можете подсказать, какие регистры (https://linux-sunxi.org/VE_Register_guide: 0x0xx, 0x1xx, 0xaxx) отвечают за задание параметров входного(yuv\nv) кадра: размер, адрес буфера; задание параметров сжатия (выходного кадра): адрес буфера запуск сжатия JPEG: выбор режима VE на сжатие и запуск(аналог DEC_TRIG в Вашем проекте) Заранее благодарен за помощь! Смотрел исходники cedar/cedrus: декодеры на любой цвет и вкус, а кодеры только для h26x ... =( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 20 июля Опубликовано 20 июля (изменено) · Жалоба On 7/20/2024 at 11:16 AM, _Евген_ said: Смотрел исходники cedar/cedrus: декодеры на любой цвет и вкус, а кодеры только для h26x я это использовал https://github.com/milosladni/jepoc в аттаче мои изменения для майнстримного драйвера Linux относительно этого форка https://github.com/smaeul/linux/tree/d1/all он не требует libjpeg но мне кажется вас только запутает - POC легко читается и лёгкий для понимания, но вопросы и подводные камни были linux-d1-all-jpeg-enc.patch Изменено 20 июля пользователем sasamy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 20 июля Опубликовано 20 июля · Жалоба 17 минут назад, sasamy сказал: я это использовал https://github.com/milosladni/jepoc Здравствуйте, sasamy! Теперь все встает на свои места 😃 Меня смущало в коде(повторюсь, что у меня чип F1C без H264): main.c: char *outjpeg = "/tmp/poc.jpeg"; ... veavc_launch_encoding(); -> veavc.c: S(trigger, VE_AVC_TRIGGER); -> ve.h : #define VE_AVC_TRIGGER 0xb18 что данный регистр относится к группе кодека h264(oxbxx)! А раз кодека нет, то и блока регистров такого нет ... думал я =( Но судя по комментарию "JPEG/H264 Different Settings" - в F1C без H264 этот блок есть, но работает только в режиме JPEG. Жаль , что понял я это поздно! Сейчас уже уезжаю на дачу. Пока решил ограничить частоту кадров(надеюсь 64Gb хватит отловить момент, кто у Тещи цветы выкапывает 😃 . Вернусь, набросаю код(без платы) и уже через неделю проверю "теорию". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 20 июля Опубликовано 20 июля · Жалоба 41 minutes ago, sasamy said: он не требует libjpeg но мне кажется вас только запутает - POC легко читается и лёгкий для понимания, но вопросы и подводные камни были Собирать нужно с libjpeg8, а не libjpeg. Тогда всё собирается очень легко. Оно нужно только для создания/распарсивания хедера + создание таблиц квантования. Можно заранее просчитать все нужные хедеры, иначе возможна утечка памяти при циклическом вызове функций. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sasamy 0 20 июля Опубликовано 20 июля · Жалоба On 7/20/2024 at 12:40 PM, repstosw said: Собирать нужно с libjpeg8, а не libjpeg. Тогда всё собирается очень легко. Оно нужно только для создания/распарсивания хедера + создание таблиц квантования. я в курсе, для драйвера в ядре всё должно быть своё и естественно вопросы были не о том с какой из библиотек libjpeg собирать POС On 7/20/2024 at 12:30 PM, _Евген_ said: повторюсь, что у меня чип F1C без H264 в t113 его тоже нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 20 июля Опубликовано 20 июля (изменено) · Жалоба 3 часа назад, _Евген_ сказал: надеюсь 64Gb хватит отловить момент Нужно делать детектор изменения в кадре, тогда точно хватит Изменено 20 июля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 22 июля Опубликовано 22 июля · Жалоба В 20.07.2024 в 16:01, mantech сказал: Нужно делать детектор изменения в кадре, тогда точно хватит О, машинное обучение 😉 я не силен в данной теме, но мне кажется одного ядра f1c будет маловато для таких целей. Камера у меня 576p. Сохраняю я только яркостный канал(ч.б. фото). Т.к. драйвер sd в данном примере не шибко расторопный, то и 25 к/с он не успевал сохранять- кадры прореживаются =( В итоге, одно событие занимает ~50Мбайт( экспериментальные данные). У нас все же не проходной двор - 1000 срабатываний на неделю должно хватить. Упустил момент с "размытиями" движений. Здесь о них писали. Я их фиксировал в начале экспериментов. Но так и не понял их причину. А после добавления всех костылей(прореживания, сохранения ч.б. и т.п.) не проверил, т.к. была статика =( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 22 июля Опубликовано 22 июля (изменено) · Жалоба 38 минут назад, _Евген_ сказал: О, машинное обучение Детектор изменения содержания кадра был придуман давным давно, когда еще никаких нейросетей никто не использовал)) Не путайте с распознаванием образов... Раньше для подобного еще такой "финт ушами" делал, ставил к пленочной камере объемный охранный датчик, видео писалось при срабатывании его и еще пару минут после, эт такой аппаратный декодер изменения картинки))))))) 38 минут назад, _Евген_ сказал: то и 25 к/с он не успевал сохранять При вашей задаче зачем вам такой битрейт? Тут 10к\с вполне хватит, при 576р картинке жпег может и программно жаться наверно, хотя у вас же не кортекс А и НЕОНа нет, так что может и не успеть... Изменено 22 июля пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 5 августа Опубликовано 5 августа · Жалоба В 20.07.2024 в 13:15, sasamy сказал: я в курсе, для драйвера в ядре всё должно быть своё и естественно вопросы были не о том с какой из библиотек libjpeg собирать POС Соглашусь! Весь вечер просидел, а так и не смог собрать рабочую библиотеку https://github.com/ystk/debian-libjpeg8 под arm-none-eabi(baremetal). Возможно у кого-то есть упрощенная версия для формирования заголовочника(не важно какое разрешение), на примере того как это сделано для декодера в jpgdec? Буду рад помощи. Из того что успел, пока делал заглушки для jpeg (по итогу закоментировал все библиотечные вызовы в vejpeg_header_create), так это сформировал тестовую картинку(Y , C) с квадратиками, запустил кодек(настроил такты, считал версию... дошел до veavc_launch_encoding, поставил ожидание на 2 сек), но по veavc_check_status получил "none" =( Расстроился... Обратил внимание, что Jsize = 0x800000; приводит к переполнению heap(в консоль выводится сообщение из system.c). Убрал один нолик в размере(т.к. тестовая картинка из примера у меня имеет размер 112x112 и такой выходной буфер ни к чему, наверное). Ошибка по heap ушла, но veavc_check_status по прежнему выдает 0 (уж лучше бы выдал ошибку). Адреса буферов(выделяю через malloc) идут в 0x8xxxxx00 с выравниванием по 1024. Утро вечера мудренее... 11 минут назад, _Евген_ сказал: поставил ожидание на 2 сек Возможно, я что-то не учел при замене ve_wait на паузу(mdelay) - надо глянуть в ioctl драйвера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 6 августа Опубликовано 6 августа (изменено) · Жалоба Продолжаю "грызть кактус": В качестве libjpeg взял исходники с https://electronix.ru/forum/topic/105138-keil-mdk-arm-biblioteka-libjpeg/(си-шники dst и src брал без суффиксов). Автор зачем-то за#if-ел в структурах поля FILE, но банальным поиском и заменой #if 0 на #if 1 это решается 😃. Проверил, что ve_wait на паузу(mdelay) - не страшно. Встречал в данной теме, что для t113 в VE MODE ставят 6 и 7 бит, попробовал - не ставится -> для F1c не актуально! Поставил DDR1-32бита(1<<16) вместо DDR3(3<<16) Ошибка с heap решилась увеличением значения в ld-файле(было 0x00800000, сделал 0x01000000) Но статус по прежнему нулевой. Добавил вывод регистров: [SUNXI] VE version 0x1663 opened. ve_open:[SUNXI] VE MODE:00010000 [SUNXI] VE ISP[01c0ea00]: 0a00:00000000 00000000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 00000000 00000000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 00000000 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00000000 00000000 00000000 00000000 0b10:00000000 00000000 00000000 00000000 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:00000000 00000000 00000000 00000000 0b90:00000000 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 [VE TEST] picture 256x256 at 100 quality [VE TEST] picture generated. [VE TEST] malloc big. veavc_select_subengine:[SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00000000 00000000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 00000000 00000000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00000000 00000000 00000000 00000000 0b10:00000000 00000000 00000000 00000260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:00000000 ffffffff 00000000 0fff0000 0b90:00000000 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 [SUNXI] VE buff ptr 0x80016c00. [SUNXI] VE buff ptr 0x80027000. veisp_set_buffers:[SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00000000 00000000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 80016c00 80027000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00000000 00000000 00000000 00000000 0b10:00000000 00000000 00000000 00000260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:00000000 ffffffff 00000000 0fff0000 0b90:00000000 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 veisp_init_picture:[SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00100010 00100000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 80016c00 80027000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00100010 00000000 00000000 00000000 0b10:00000000 00000000 00000000 00000260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:00000000 ffffffff 00000000 0fff0000 0b90:00000000 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 [SUNXI] VE buff ptr 0x80037400. [VEAVC] outbuf of size 8388608, write only max 8388608 bytes veavc_init_ctrl:[SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00100010 00100000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 80016c00 80027000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00100010 00000000 00000000 00000000 0b10:00000000 00000007 00010000 00000260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:80037400 808373ff 00000000 04000000 0b90:00000000 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 veavc_jpeg_parameters:[SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00100010 00100000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 80016c00 80027000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00100010 80000000 00000000 00000000 0b10:00000000 00000007 00010000 00000260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:80037400 808373ff 00000000 04000000 0b90:00000000 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 [VEAVC] put nbits 16, data 0xffc0 status 0 (none) [VEAVC] put nbits 16, data 0x11 status 0 (none) [VEAVC] put nbits 8, data 0x8 status 0 (none) [VEAVC] put nbits 16, data 0x100 status 0 (none) [VEAVC] put nbits 16, data 0x100 status 0 (none) [VEAVC] put nbits 8, data 0x3 status 0 (none) [VEAVC] put nbits 8, data 0x1 status 0 (none) [VEAVC] put nbits 4, data 0x2 status 0 (none) [VEAVC] put nbits 4, data 0x2 status 0 (none) [VEAVC] put nbits 8, data 0x0 status 0 (none) [VEAVC] put nbits 8, data 0x2 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 8, data 0x1 status 0 (none) [VEAVC] put nbits 8, data 0x3 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 8, data 0x1 status 0 (none) [VEAVC] put nbits 16, data 0xffda status 0 (none) [VEAVC] put nbits 16, data 0xc status 0 (none) [VEAVC] put nbits 8, data 0x3 status 0 (none) [VEAVC] put nbits 8, data 0x1 status 0 (none) [VEAVC] put nbits 4, data 0x0 status 0 (none) [VEAVC] put nbits 4, data 0x0 status 0 (none) [VEAVC] put nbits 8, data 0x2 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 8, data 0x3 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 4, data 0x1 status 0 (none) [VEAVC] put nbits 8, data 0x0 status 0 (none) [VEAVC] put nbits 8, data 0x3f status 0 (none) [VEAVC] put nbits 4, data 0x0 status 0 (none) [VEAVC] put nbits 4, data 0x0 status 0 (none) [JEPOC] launch encoding. vejpeg_write_quantization:[SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00100010 00100000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 80016c00 80027000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00100010 c4000400 00000000 00000000 0b10:00000000 00000007 00010400 00000260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:80037400 808373ff 00000000 04000000 0b90:00000108 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 veavc_launch_encoding:[SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00100010 00100000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 80016c00 80027000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00100010 c4000400 00000000 00000000 0b10:00000000 00000007 00010000 80800260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:80037400 808373ff 00000000 04000000 0b90:00000108 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 [VEAVC] finish status 0 (none) Save jpeg: outlen 574, length 33 Open: 0 outbuf: 0 buffer: 0 write EOI: 0 [JEPOC] written 33 bytes to image.jpg [VE TEST] free. [SUNXI] VE MODE:0001000b [SUNXI] VE ISP[01c0ea00]: 0a00:00100010 00100000 00000000 00000000 0a10:00000000 00000000 00000000 00000000 0a20:00000000 00000000 00000000 00000000 0a30:00000000 00000000 00000000 00000000 0a40:00000000 00000000 00000000 00000000 0a50:00000000 00000000 00000000 00000000 0a60:00000000 00000000 00000000 00000000 0a70:00000000 00000000 80016c00 80027000 0a80:00000000 00000000 00000000 00000000 0a90:00000000 00000000 00000000 00000000 0aa0:00000000 00000000 00000000 00000000 0ab0:00000000 00000000 00000000 00000000 0ac0:00000000 00000000 00000000 00000000 0ad0:00000000 00000000 00000000 00000000 0ae0:00000000 03d40165 00000000 00000000 0af0:00000000 00000000 00000000 00000000 [SUNXI] VE AVC[01c0eb00]: 0b00:00100010 c4000400 00000000 00000000 0b10:00000000 00000007 00010000 80800260 0b20:00000000 00000000 00000000 00000000 0b30:00000000 00000000 00000000 00000000 0b40:00000000 00000000 00000000 00000000 0b50:00000000 00000000 00000000 00000000 0b60:00000000 00000000 00000000 00000000 0b70:00000000 00000000 00000000 00000000 0b80:80037400 808373ff 00000000 04000000 0b90:00000108 00000000 00000000 00000000 0ba0:00000000 00000000 00000000 00000000 0bb0:00000000 00000000 00000000 00000000 0bc0:00000000 00000000 00000000 00000000 0bd0:00000000 00000000 00000000 00000000 0be0:00000000 00000000 00000000 00000000 0bf0:00000000 00000000 00000000 00000000 [VE TEST] exit. Может у кого есть описание регистра AVC STATUS (0xb1c)битов 31 и 23? Они выставляются после запуска кодирования (80800260). Так же не понятно по командам записи put_bits - является ли статус 0(none) для данной операции нормой или там так же должна быть 1(done)? Попробовал открыть записанный файл на ПК - ошибка данных.... Изменено 6 августа пользователем _Евген_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 7 августа Опубликовано 7 августа · Жалоба 11 часов назад, _Евген_ сказал: Добавил вывод регистров: Скрывайте потом такие портянки под спойлер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 7 августа Опубликовано 7 августа · Жалоба 9 часов назад, mantech сказал: Скрывайте потом такие портянки под спойлер. Виноват! Прошу не банить, учту на будущее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 15 августа Опубликовано 15 августа · Жалоба В 06.08.2024 в 22:17, _Евген_ сказал: Продолжаю "грызть кактус": В качестве libjpeg взял исходники с https://electronix.ru/forum/topic/105138-keil-mdk-arm-biblioteka-libjpeg/(си-шники dst и src брал без суффиксов). Автор зачем-то за#if-ел в структурах поля FILE, но банальным поиском и заменой #if 0 на #if 1 это решается 😃. Проверил, что ve_wait на паузу(mdelay) - не страшно. Встречал в данной теме, что для t113 в VE MODE ставят 6 и 7 бит, попробовал - не ставится -> для F1c не актуально! Поставил DDR1-32бита(1<<16) вместо DDR3(3<<16) Ошибка с heap решилась увеличением значения в ld-файле(было 0x00800000, сделал 0x01000000) Но статус по прежнему нулевой. Добавил вывод регистров: Причина оказалась в том, что я не настроил контроллер SRAM, хотя были подсказки как в jpgdec, так и в архиве ve.zip: //VE_SRAM mapping to AC320 val = readl(cedar_devp -> sram_bass_vir); /*#define SRAMC_BASE (0x01C00000) or SYS->CTRL[0]*/ val &= 0x80000000; writel(val, cedar_devp -> sram_bass_vir); //remapping SRAM to MACC for codec test (MACC = Media Acclerator) val = readl(cedar_devp -> sram_bass_vir); val |= 0x7fffffff; writel(val, cedar_devp -> sram_bass_vir); Так что, если Вы делаете все правильно, а флаг done в status после trigger не поднимается, то нужно правильно настроить SRAM контроллер. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Евген_ 1 19 августа Опубликовано 19 августа (изменено) · Жалоба В 08.07.2022 в 17:29, repstosw сказал: Сейчас кодированием JPEG занимаюсь: биру с камеры фреймы и жму их в JPEG. Кадры записываю в файл - получается MJPEG, который можно проглядеть на ПК с помощью MPC-HC. Но FatFS + SD карта убивают производительность... Удалось ускорить работу с fatfs+SD ? Думал у меня косяк при сжатии, а оказалось: без сохранения сжатого кадра (33кб) на SD-карту с fatfs скорость обработки с камеры - 25fps(ожидаемо), а с сохранением - 1 fps =( . Карточка Samsung 64Gb с заявленной скоростью ~90Мб/c(брал на маркетпласе О..н, на подделку не похожа). Может есть набор "оптимальных" параметров в fconf.h.? По коду драйвер diskio использует mmc_write_blocks по 512 байт. Не копить же по 25 кадров перед записью?! Изменено 19 августа пользователем _Евген_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться