mantech 43 10 апреля, 2022 Опубликовано 10 апреля, 2022 (изменено) · Жалоба 1 час назад, repstosw сказал: куда девать второе ядро? Ну тут каждый сам решает))) У меня в системе есть основная часть и движок вирт. машины, в одноядерном они делили проц в соотн 60 на 40, в 2х ядерном можно каждому ядру дать 100% своей задачи... 1 час назад, repstosw сказал: что у него есть графический движок :) G2D Так-то есть, но вот доков как всегда нет((( Изменено 10 апреля, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 219 10 апреля, 2022 Опубликовано 10 апреля, 2022 · Жалоба 6 часов назад, repstosw сказал: куда девать второе ядро? Можно биткоины майнить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 11 апреля, 2022 Опубликовано 11 апреля, 2022 (изменено) · Жалоба 12 hours ago, mantech said: Так-то есть, но вот доков как всегда нет((( Я смотрю алиэкспресс и вижу, что ни чипов, ни отдладочных плат с T113-S3 нет. Или плохо искал? Кто ещё может их продать в РФ ? Изменено 11 апреля, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 43 11 апреля, 2022 Опубликовано 11 апреля, 2022 · Жалоба 3 часа назад, repstosw сказал: что ни чипов, ни отдладочных плат с T113-S3 нет. Мои заказчики купили на пробу неск. штук, платы должны быть к лету, по словам китайцев... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 11 апреля, 2022 Опубликовано 11 апреля, 2022 · Жалоба 1 hour ago, mantech said: Мои заказчики купили на пробу неск. штук, платы должны быть к лету, по словам китайцев... Ситуация 1-в-1 как была с V3s. ТОже вначале - ни чипов, ни платы... Потом появились на али-экспрессе Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vasily_ 49 11 апреля, 2022 Опубликовано 11 апреля, 2022 · Жалоба 6 часов назад, repstosw сказал: Или плохо искал? https://www.aliexpress.com/item/1005004143513032.html?spm=a2g0o.productlist.0.0.4f3a1a0fD1MVf9&algo_pvid=d34796a4-78d8-476f-9a98-6439f955d2e2&algo_exp_id=d34796a4-78d8-476f-9a98-6439f955d2e2-1&pdp_ext_f={"sku_id"%3A"12000028176689662"}&pdp_pi=-1%3B6.6%3B-1%3B-1%40salePrice%3BEUR%3Bsearch-mainSearch Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 11 апреля, 2022 Опубликовано 11 апреля, 2022 (изменено) · Жалоба 4 hours ago, Vasily_ said: https://www.aliexpress.com/item/1005004143513032.html?spm=a2g0o.productlist.0.0.4f3a1a0fD1MVf9&algo_pvid=d34796a4-78d8-476f-9a98-6439f955d2e2&algo_exp_id=d34796a4-78d8-476f-9a98-6439f955d2e2-1&pdp_ext_f={"sku_id"%3A"12000028176689662"}&pdp_pi=-1%3B6.6%3B-1%3B-1%40salePrice%3BEUR%3Bsearch-mainSearch Я у такого продавца не стал бы ничего заказывать: ни рейтинга, ни отзывов. Похож на мошенника. https://ru.aliexpress.com/store/feedback-score/5877637.html Изменено 11 апреля, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 43 11 апреля, 2022 Опубликовано 11 апреля, 2022 · Жалоба 2 часа назад, repstosw сказал: Я у такого продавца не стал бы ничего заказывать: Спросил, говорят здесь брали - https://russian.alibaba.com/p-detail/Allwinner-1600453710935.html?spm=a2700.7724857.normal_offer.d_image.255b440blUwbc5 7 часов назад, repstosw сказал: Ситуация 1-в-1 как была с V3s. Да у них всегда так было, еще с А40х... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ozelot 7 13 апреля, 2022 Опубликовано 13 апреля, 2022 · Жалоба Может кому-то будет интересно. По ссылке сравнение производительности V3S и F1C100S на примере TinyGL: Baremetal TinyGL examples Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 43 13 апреля, 2022 Опубликовано 13 апреля, 2022 · Жалоба 12 часов назад, Ozelot сказал: Может кому-то будет интересно. Интересно-то может и интересно, другой вопрос - как с этой китайчи скачать что-нибудь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 13 апреля, 2022 Опубликовано 13 апреля, 2022 (изменено) · Жалоба Разбираюсь сейчас с режимами YUV420 у V3s для того, чтобы потом задействовать скейлер для растяжения-сжатия картинки. Как было ранее сказано, что скейлер работает только на видео-каналах (на RGB-каналах скейлера нет), то пришлось перегнать исходную картинку из RGB 888 в YUV420. Исходная картинка 200x120: Перегнал в YUV420: Код конвертации RGB в YUV420: void Bitmap2Yuv420p(u8 *dst,u8 *src,u32 width,u32 height) { u32 image_size=width*height; u32 upos=image_size; u32 vpos=upos+(upos/4); for(u32 i=0;i<image_size;i++) { u8 r=src[3*i ]; u8 g=src[3*i+1]; u8 b=src[3*i+2]; dst[i]=(((66*r)+(129*g)+(25*b))>>8)+16; if(!((i/width)%2)&&!(i%2)) { dst[upos++]=(((-38*r)+(-74*g)+(112*b))>>8)+128; dst[vpos++]=(((112*r)+(-94*g)+(-18*b))>>8)+128; } } } В итоге, не получается получить требуемые размеры каналов U и V - они выходят в 2 раза меньше по ширине и в 4 раза меньше по высоте: С Y-каналом всё нормально: его размеры совпадают с требуемым. А вот с U и V каналами какая-та фигня... Причём, установка PICH никак не влияет на отображение этих каналов - она влияет только на логическое смещение в видеопамяти. Каналы по-прежнему уменьшены. Код настройки плоскостей: #define SCREEN_WIDTH 800 /* ширина дисплея */ #define SCREEN_HEIGHT 480 /* высота дисплея */ #define CH0_WIDTH 200 /* ширина канала 0 */ #define CH0_HEIGHT 120 /* высота канала 0 */ #define CH0_X 0 /* Х-позиция канала 0 */ #define CH0_Y 0 /* Y-позиция канала 0 */ #define CH0_BUFFER0 (VIDEO_MEMORY) /* буфер 0 канала 0 */ struct de_vi * const de_vi_regs0 = (struct de_vi *)(SUNXI_DE2_MUX0_BASE + SUNXI_DE2_MUX_CHAN_REGS + (SUNXI_DE2_MUX_CHAN_SZ * 0) ); //Channel 0 Not Pixel Alpha //CH0: data = SUNXI_DE2_UI_CFG_ATTR_EN | SUNXI_DE2_UI_CFG_ATTR_FMT(0xA /* SUNXI_DE2_FORMAT_YUV420 Planar*/ ); writel(data,&de_vi_regs0->cfg[0].attr); writel(SUNXI_DE2_WH(CH0_WIDTH,CH0_HEIGHT-1),&de_vi_regs0->cfg[0].size); //CH0 WIDTH, HEIGHT writel((CH0_Y<<16)|CH0_X,&de_vi_regs0->cfg[0].coord); //CH0 XCOOR, YCOOR //CH0 PITCH writel(CH0_WIDTH ,&de_vi_regs0->cfg[0].pitch[0]); //Y writel(CH0_WIDTH/2,&de_vi_regs0->cfg[0].pitch[1]); //U writel(CH0_WIDTH/2,&de_vi_regs0->cfg[0].pitch[2]); //V //CH0 LAYMB_LADD writel(CH0_BUFFER0 ,&de_vi_regs0->cfg[0].top_laddr[0]); //Y writel(CH0_BUFFER0+(CH0_WIDTH*CH0_HEIGHT) ,&de_vi_regs0->cfg[0].top_laddr[1]); //U writel(CH0_BUFFER0+(CH0_WIDTH*CH0_HEIGHT)+(CH0_WIDTH*CH0_HEIGHT/4),&de_vi_regs0->cfg[0].top_laddr[2]); //V writel(SUNXI_DE2_WH(SCREEN_WIDTH,SCREEN_HEIGHT),&de_vi_regs0->ovl_size[0]); //CH0 OVL WIDTH, HEIGHT Что я делаю не так? Изменено 13 апреля, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ozelot 7 14 апреля, 2022 Опубликовано 14 апреля, 2022 · Жалоба Когда разбирался с аппаратным jpeg, делал так: /* RGB to YUV conversion. Based on http://www.fourcc.org/fccyvrgb.php) */ #include <math.h> int rgb2yuv (unsigned char *rgb, unsigned char *py, unsigned char *puv, int w, int h) { int x, y; unsigned char r, g, b; if((w & 1) || (h & 1)) return -1; for(y = 0; y < h; y++) { for (x = 0; x < w; x++) { r = *rgb++; g = *rgb++; b = *rgb++; *py++ = round(0.299f * r + 0.587f * g + 0.114f * b); if((y & 1) && (x & 1)) { *puv++ = round(-0.1687f * r - 0.3313f * g + 0.5f * b + 128); *puv++ = round(0.5f * r - 0.4187f * g - 0.0813f * b + 128); } } } return 0; } Коэффициенты можно, как и у вас, сделать на сдвигах... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 14 апреля, 2022 Опубликовано 14 апреля, 2022 · Жалоба 6 hours ago, repstosw said: Что я делаю не так? Оказалось, что V3s не даёт на экране YUV, отображает RGB. Причём Y - это R, U,V соответственно это G и B. При этом если сохранить картинку из RGB в отдельные плоскости R, G и B, то всё работает нормально. Либо V3s не умеет YUV, либо какой-то бит не включен, переключающий отображение на дисплей с RGB На YUV. Хотя режим плоскости задан верно: #define SUN8I_MIXER_FBFMT_YUV420 10 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 16 апреля, 2022 Опубликовано 16 апреля, 2022 · Жалоба А кто-нибудь игрался с "Кедром" ? Это такой аппаратный движок в камнях Allwinner, для кодирования и декодирования видео. Пока только скромно хочу декодировать JPEG-картинки. Из более-менее BareMetal нашёлся вот такой проект: https://github.com/jemk/cedrus Пришлось немного изменить его, в частности выкинуть всякие ve_virt2phys() , по-просту спрямив адреса: VA=PA. А также принудительно вписать базу регистров: 0x01c0e000 Вначале программа повисала при первой записи в регистр. Включил гейт на VE, сделал сброс, включил VE_PLL, задействовал дефолтную частоту. Теперь запись в регистры не приводит к повисанию. Прочёл версию "Кедра" - для V3s она 0x1681, что соответствует адекватному значению. Описание всех регистров здесь: https://linux-sunxi.org/VE_Register_guide Тем не менее, заставить этот проект работать на V3s не удалось - движок похоже не работает: буфера luma_output и chroma_output - остаются без изменений. При этом парсинг самого JPEG-файла идёт правильно (проверил). Ещё вот эта муть непонятна с указанием адреса на пожатый кадр: Учитывая то, что внешняя память у V3s начинается с 0x40000000, неясно, почему в исходниках запись в этот регистр выглядит так: // set input buffer writel(ve_virt2phys(input_buffer) | 0x70000000, ve_regs + VE_MPEG_VLD_ADDR); Тоесть эта строчка кода игнорирует старший ниббл физического адреса (0x4), который согласно картинке выше должен был задаваться в младших битах регистра. Тоесть вот так: writel( (((u32)input_buffer)&0x0FFFFFF0)|0x4| 0x70000000, ve_regs + VE_MPEG_VLD_ADDR); И ещё куча невнятной фигни наподобие - выставить тип и разрядность памяти (DDR2/3, 16/32 bit) и бит 5 включения движка: В общем, какой-то слабый и мутный реверс вышел... Пока не удаётся его заставить работать на V3s. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 43 16 апреля, 2022 Опубликовано 16 апреля, 2022 (изменено) · Жалоба 35 минут назад, repstosw сказал: И ещё куча невнятной фигни наподобие - выставить тип и разрядность памяти Зачем это вообще? Разрядность и тип, ИМХО должна выставляться только в ините памяти и больше нигде... 35 минут назад, repstosw сказал: Пока только скромно хочу декодировать JPEG-картинки. Ну если это не для MJPEG, то нафига вообще лезть в дебри этих корок, которые абсолютно недокументированы... Разве, что только ради спортивного интереса. Еще и с учетом того, что эти корки конвертируют только в тейловые форматы, с которыми у вас, судя по пред. посту, как то не очень... 35 минут назад, repstosw сказал: неясно, почему в исходниках запись в этот регистр выглядит так: Скорее всего из-за трансляции виртуальных адресов. Изменено 16 апреля, 2022 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться