Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: JPEG кодек на ARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Страницы: 1, 2
Rst7
Цитата
Готово.


Ну что-же. Тогда пересматриваем цифры. Значит, до BF'а нам еще 80%, почти в 2 раза хуже. С другой стороны, соотношение с тактов у AVR с тактами у ARM уменьшилось - так что выигрыш за счет 32хразрядной архитектуры стал около 2х.

Цитата
70000 лишних тактов откуда-то набежало только.


да хрен с ними, на 4х миллионах то...
Vitaliy_ARM
События развиваются так быстро, что не успеваю переваривать. smile.gif

Может тогда осветить вопрос наиболее подходящих камер для подобных проектов?

Выкладываю даташит на одну из них.
Rst7
Цитата
Выкладываю даташит на одну из них.


А Вам обязательно такое разрешение? Имейте в виду, что понадобится ОЗУ для хранения всего кадра, и время упаковки растет пропорционально площади изображения (единица измерения - пиксель^2) - так что картинка с такой камеры будет жаться не 4, а 100 миллионов тактов (это чб, с цветом - в полтора-два раза дольше, как выберете).

Рекомендую, кстати, искать камеру, которая умеет сразу выдавать YUV, а не RGB - минус матрицирование, тоже требующая времени операция.
Vitaliy_ARM
Цитата(Rst7 @ Jun 3 2008, 14:07) *
А Вам обязательно такое разрешение? Имейте в виду, что понадобится ОЗУ для хранения всего кадра, и время упаковки растет пропорционально площади изображения (единица измерения - пиксель^2) - так что картинка с такой камеры будет жаться не 4, а 100 миллионов тактов (это чб, с цветом - в полтора-два раза дольше, как выберете).

Рекомендую, кстати, искать камеру, которая умеет сразу выдавать YUV, а не RGB - минус матрицирование, тоже требующая времени операция.



Собственно озу предолагалось метров на 64. Теперь буду думать над оптимизацией.
dENIM
Цитата(Vitaliy_ARM @ Jun 3 2008, 12:59) *
События развиваются так быстро, что не успеваю переваривать. smile.gif

Может тогда осветить вопрос наиболее подходящих камер для подобных проектов?

Выкладываю даташит на одну из них.


Очинь апасна

Но все же, если не секрет, для чего такое разрешение?
Эти все поделки на армах и камерах идут, в основном, в системы наблюдения, видеофоны всякие.
А ваше разрешение подразумевает нечто монструозное. Неужели фотоаппарат? biggrin.gif
Vitaliy_ARM
Цитата(dENIM @ Jun 3 2008, 17:43) *
Очинь апасна

Но все же, если не секрет, для чего такое разрешение?
Эти все поделки на армах и камерах идут, в основном, в системы наблюдения, видеофоны всякие.
А ваше разрешение подразумевает нечто монструозное. Неужели фотоаппарат? biggrin.gif



Не совсем секрет. Устройство, очень похожее на хороший фотоаппарат. Ничего монстроузорного в 2 Мпикселях нет.
_4afc_
Цитата(Vitaliy_ARM @ Jun 3 2008, 13:59) *
Выкладываю даташит на одну из них.


Нет ли у кого более подробной информации по LZ0P39HA или LZ0P3954?
Всмысле I2C и режимов работы. Конструктив мне понятен.
Vitaliy_ARM
Цитата(_4afc_ @ Jun 7 2008, 13:59) *
Нет ли у кого более подробной информации по LZ0P39HA или LZ0P3954?
Всмысле I2C и режимов работы. Конструктив мне понятен.


Все остальное, вроде, под NDA дается.
_4afc_
Цитата(Vitaliy_ARM @ Jun 7 2008, 18:01) *
Все остальное, вроде, под NDA дается.


Может брал кто уже под NDA? Поделитесь пожалуйста.
А то лежат LZ0P39HA, не знаю как подступиться...
etoja
NDA - это соглашение о неразглашении информации. Из подписавших никто не даст из-за последствий.
Vitaliy_ARM
Цитата(_4afc_ @ Jun 9 2008, 13:49) *
Может брал кто уже под NDA? Поделитесь пожалуйста.
А то лежат LZ0P39HA, не знаю как подступиться...


А если попробовать VS6724?
singlskv
Цитата(_4afc_ @ Jun 9 2008, 13:49) *
Может брал кто уже под NDA? Поделитесь пожалуйста.
А то лежат LZ0P39HA, не знаю как подступиться...
А вот это не подходит ?
http://hw.cz/files/redaktor130/LZ0P39HA_SP...NS_20071108.pdf
_4afc_
Цитата(Vitaliy_ARM @ Jun 9 2008, 21:52) *
А если попробовать VS6724?


Вам она больше подойдёт несомненно, поскольку жмёт в JPEG сама.
Меня больше интересует изображение в YUV420 ибо камеры на самом деле, в частности MT9D131, выдают JFIF без заголовков и коэфициентов, которые надо формировать самому. Т.е. надо или работать с постоянными коэф. или вычитывать их по I2C.
Причём доступ к многим регистрам в MT9D131 через узенькую дырочку.

PS: VS6724 мне понравилась, жаль раньше не видел. И дока подробная.


Цитата(singlskv @ Jun 9 2008, 22:59) *
А вот это не подходит ?
http://hw.cz/files/redaktor130/LZ0P39HA_SP...NS_20071108.pdf


Это есть в нескольких местах в интернете, и естественно я получил этот документ при покупке модулей.

Прочитав документ я не нахожу ответа что такое адреса 5e4-5eb, неясно каким образом осуществляется 5 кратный зум и перевороты картинки.

Кроме того различные регулировки баланса белого и т.п.

И регулировка автофокуса не ясна. Данные о наличии или отсутствии фокуса должны идти с камеры, даже если я сам кручу мотором. Если мне самаму придётся обрабатывать кадр - это уже ручной фокус.
Vitaliy_ARM
Цитата(_4afc_ @ Jun 10 2008, 11:01) *
PS: VS6724 мне понравилась, жаль раньше не видел. И дока подробная.


Для полного счастья не хватает примеров работы. Нашел только какие-то обрывки кода для получения данных на STR9... Жудко нехороший процессор
_4afc_
Цитата(Rst7 @ Jun 2 2008, 11:03) *
Вот повставлял в исходники необходимые упоминания про GPL и выкладываю... Теперь посмотрим, какие новые поделки с камерами за бабло появятся biggrin.gif


Что-то у меня с JPEG никак отношения не ладятся.
Откомпилировал ваш исходник в DEV-C++ под винду - результат конвертации ошеломляет. Может кто подскажет - что не так, визуально?
Округления? Инты, шорты, чары? Структуры?
Исходная картинка - таже.
Rst7
Цитата
что не так, визуально?


Разная обработка сдвигов в ARM и в x86. Разный результат у сдвигов на 32 бита.

Для ARM кодер собирается и работает, так что пользуйте. Не забывая про GNU smile.gif
Rst7
Цитата(_4afc_ @ Aug 14 2008, 10:14) *
Что-то у меня с JPEG никак отношения не ладятся.


Ну как? Разобрались? Если нет - то в версии для x86 замените _WRITE_BITS_N на это
Код
#define _WRITE_BITS_N(LEN,SYM) \
  { \
    if ((REG)(__bs_bit-=LEN)>0) \
    { \
      __bs_buf|=SYM<<__bs_bit; \
    } \
    else \
    { \
      UREG c; \
      __bs_buf|=SYM>>(__bs_bit=0-__bs_bit); \
      c=__bs_buf>>24; \
      if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \
      c=__bs_buf>>16; \
      if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \
      c=__bs_buf>>8; \
      if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \
      c=__bs_buf>>0; \
      if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \
      if (__bs_bit) __bs_buf=SYM<<(__bs_bit=32-__bs_bit); else {__bs_buf=0; __bs_bit=32;}\
    } \
  } \


Собственно говоря, актуален последний if.
yes
Цитата(blackfin @ Jun 1 2008, 19:38) *
Т.е. цветное 4:2:2 будет сжимать примерно за 8 MIPS'ов.
BF, все же, быстрее.. wink.gif


а как в JPEG/JFIF записать 4:2:2? вроде бы все примеры, которые я встречал, используют 4:2:0
blackfin
Цитата(yes @ Aug 26 2008, 15:07) *
а как в JPEG/JFIF записать 4:2:2? вроде бы все примеры, которые я встречал, используют 4:2:0
Стандарт JFIF фиксирует кол-во цветов (1 или 3) и их представление (Ci = YCbCr). Формат MCU, кол-во scan'ов и interleaving зависит от Вас. Цвет можно сделать любой: 4:2:0, 4:2:2 или 4:4:4.
yes
Цитата(blackfin @ Aug 26 2008, 15:54) *
Стандарт JFIF фиксирует кол-во цветов (1 или 3) и их представление (Ci = YCbCr). Формат MCU, кол-во scan'ов и interleaving зависит от Вас. Цвет можно сделать любой: 4:2:0, 4:2:2 или 4:4:4.


собственно интересно [можно ли] в неиннтерлейсном режиме 3 цвета, что писать в SOF и как MCU (если не ошибаюсь - прямоугольник 8х16) кодируется
blackfin
Цитата(yes @ Aug 27 2008, 15:05) *
собственно интересно [можно ли]
Можно, читайте стандарт. rolleyes.gif
Rst7
Цитата(_4afc_ @ Aug 28 2008, 13:08) *
Самостоятельно - нет. Дал ковырятся местному программисту, но он увяз.

Слабак smile.gif шютка

Цитата
Ваш вариант работает. У вашего кодера чуть больше артефактов, чем у Cristi Cuturicu - вероятно из-за целочисленных вычислений, правда у Cristi Cuturicu файл больше.

Дык поиграйтесь коэффициентом сжатия, он задается параметром функции-генератора заголовка. Чем он больше, тем выше качество и выходной размер.
_4afc_
Цитата(Rst7 @ Aug 28 2008, 19:28) *
Дык поиграйтесь коэффициентом сжатия, он задается параметром функции-генератора заголовка. Чем он больше, тем выше качество и выходной размер.

Я сначала подумал, что чем больше коэф. - тем хуже качество smile.gif
Кстати, замена усечения на округление - улучшает резкость.
Код
#define MUL_U16(a,b) ( (unsigned int)( ( ((UINT32)(a)*(b))+0x8000 )>>16 ) )

В теме проскакивали тесты на скорость - ваш исходник скомпилированный влоб на VDSP5 под BF жмёт ч/б 640х480 за 42 миллиона тактов, что неплохо.
Rst7
Цитата
Кстати, замена усечения на округление - улучшает резкость.


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

Цитата
ваш исходник скомпилированный влоб на VDSP5 под BF жмёт ч/б 640х480 за 42 миллиона тактов, что неплохо.


На арме эту картинку жало бы примерно 20 миллионов тактов. Перепишите хотя-бы DCT на асме, для остального DSPшные фичи особо не нужны...
SimpleSoft
В прошлые выходные реализовал JPEG . Честно признаюсь, не написал ни строчки кода smile.gif Хотя и разобрался как работает, всё увёл из http://mxhaard.free.fr/spca50x/Download/sp...20060127.tar.gz . Это драйвера для вебкамер под линукс. НО в папке encode есть кодировщик и в папке decode раскодировщик.

Эсть готовые функции
encode_image и decode_image
VAI
Цитата
НО в папке encode есть кодировщик и в папке decode раскодировщик.
Эсть готовые функции encode_image и decode_image

В этом архиве нет папок "encode" и "decode". И нет функций "encode_image" и "decode_image".
Может Вы ошиблись ссылкой?
SimpleSoft
Сорри... в аттаче
VAI
Цитата
Сорри... в аттаче

Спасибо.
BaRaGoZ
Добрый вечер, у меня вопрос по кодеку JpegCoderARM, я его перед тем как переносить на МК, попробовал в Windows, что то не выходит картинка, на вход давал картинку 320*240 grayscale, в том числе пробовал и фотку из архива, в чем может быть причина, картинка получается, по размеру файл сжатый, но ооочень неправильная, непонятно что изображено, может как то алгоритм по другому под виндой работает? Просто боюсь все переносить на МК, ощущение непонимания возникает! )
WitFed
Выложу свои летние опыты -- в MS-Студию-08 всё заехало успешно, картинка с пацаном размноженным конвертится нормально.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.