Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Dreameye камера
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #21
RE: App Dreameye Manager
(09.06.2015 21:52)ands писал(а):  кстати тут тоже шли дискусии о таком формате http://assemblergames.com/l/threads/drea...amp.23790/

Нет, там речь о Maple Bus не более.

(10.06.2015 11:13)cybdyn писал(а):  извиняюсь, бегло глянул что тут много текста. в кратце можно, куда штатно камера тыкается и где этот SE40X чип стоит? в итоге на дрим приходит по родному инт/фейсу?
а усб это какбы доп.?

У Dreameye нету USB, по крайне мере в открытом виде, только Maple Bus.
Какой конкретно контроллер стоит в Dreameye доподлинно не известно, возможно SE401 был взят за основу и переделан под Maple Bus, а может там какой то мост между USB и Maple Bus. В общем только вскрытие может пролить свет на этот вопрос.
Точно известно только какой ISP там стоит (из оригинальной доки узнал) и предположительно какой CIS (так же предположительно как и контроллер).

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 10.06.2015 в 12:06, отредактировал пользователь SWAT.)
10.06.2015 12:04
Вебсайт Найти все сообщения Цитировать это сообщение
ands Не на форуме
Опытный
****

Сообщений: 565
Зарегистрирован: 22.05.2006
Рейтинг: 1
Сказал спасибо: 51
Поблагодарили 42 раз(а) в 35 сообщ.
Сообщение: #22
RE: App Dreameye Manager
Сват ну так разбери камеру и посмотри платы, может быть поможет, я пока сильно занят на работе, так что даже на выходных не смогу
10.06.2015 14:43
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #23
RE: App Dreameye Manager
Да в этом нет особой необходимости, это так, ради интереса не более.

[Изображение: barbers.png]
10.06.2015 20:31
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #24
RE: App Dreameye Manager
Поигрался немного с микрофоном, накидал команду для записи звука.
Пока без каких либо настроек, просто пишет со средним усилением и в максимальном качестве (11 kHz, 16 bit). Результат сохраняется в wav файл. Кому интересно, команда в аттаче, положить надо в cmds.

Код:
sip -r -f /ide/record.wav

Запись будет длится пока не нажмете кнопку A на джойстике. По идее можно сделать запись фоном, чтобы не блокировать консоль, но пока вот так, ибо я не нашел этому практическое применение Smile


Прикрепления
.7z  sip.7z (Размер: 1.87 Кб / Загрузок: 9)

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 11.06.2015 в 11:29, отредактировал пользователь SWAT.)
11.06.2015 10:53
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #25
RE: App Dreameye Manager
(09.06.2015 20:59)SWAT писал(а):  Пока не нашел что за CMOS Image Sensor (CIS) используется в камере, но он тоже теоретически должен быть от Hyundai. Я предполагаю что это HV7131B

Да, мое предположение подтвердилось, сенсор там HV7131. Камера прекрасно отвечает на запросы регистров CIS из этого datasheet, значения по умолчанию этих регистров тоже совпадают.

Но главное конечно не в этом. Есть проблема у меня с чтением видео кадров, камера постоянно отвечает что кадр якобы не готов и отказывается слать данные. Такое ощущение что надо как то запустить режим съемки.
Если смотреть общую документацию Maple на Camera Device Function (не Dreameye конкретно), то там есть спец. команды для старта захвата видео, но в спецификации конкретно к Dreameye, эта команда не описана, а значит не поддерживается. Как и многие другие кстати, Dreameye вообще обрубок по функционалу, который был заложен в основную спецификацию. Как такового видео потока у Dreameye нету, есть только некие "continuous still images" с компрессией JangGu из которых потом можно сложить видео. Об этом варианте упоминается и в основной спецификации, но как бы между прочим, т.е. подразумевали все же что будет реальный видео поток, но вот Dreameye так и не довели до ума, либо не успели, либо сэкономили. Сделали вот такую залипуху в виде кадров-картинок.
Ну, с другой стороны хрен бы с ним, судя по Visual Park работает это вполне приемлемо. Но вот как заставить это работать...
Через команды можно читать/писать регистры CIS, ISP и Compression Engine (CE) (в нашем случае только JangGu, но в общей спецификации кстати заложена возможность для кучи форматов, но не судьба). Документация по CIS и ISP у меня есть, но вот по CE нету. Есть вероятность того, что его надо как то запустить, прежде чем появится возможность получать эти кадры.
Я попробовал вычитать весь возможный диапазон регистров (255) и уже на глаз даже стало видно как они начали повторяться, они оказались зеркалированы на все адресное пространство регистров, я думал просто до ошибки читать буду и все Smile А ошибки не последовало. Но не суть, вот он список всех регистров со значениями по умолчанию:

JangGu CE register map:
Код:
offset: value
-------------
0x00: 0x00
0x01: 0x11
0x02: 0x0c
0x03: 0x00
0x04: 0x5a
0x05: 0x02
0x06: 0x03
0x07: 0x00
0x08: 0x00
0x09: 0x00
0x0a: 0x00
0x0b: 0x00
0x0c: 0x5a
0x0d: 0x02
0x0e: 0x03
0x0f: 0x00
0x10: 0x0e
0x11: 0x00
0x12: 0x00
0x13: 0x03
0x14: 0x5e
0x15: 0x03
0x16: 0x0b
0x17: 0x03
0x18: 0x0e
0x19: 0x01
0x1a: 0x08
0x1b: 0x03
0x1c: 0x5e
0x1d: 0x03
0x1e: 0x0b
0x1f: 0x03

Что каждый из них означает - загадка, методом тыка здесь крайне сложно что-то узнать.
В общем надо искать спецификацию на CE. Вот ключевые слова:

JangGu Compression Engine
Aox Prorietary Compression Engine
SEGA JangGu Information

[Изображение: barbers.png]
12.06.2015 16:01
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #26
RE: App Dreameye Manager
Что-то я упустил подсказку. В документации по SE401 есть описание регистров его CE (не написано правда что он JangGu, но судя по драйверу это он и есть), правда они там 16 bit, а у Dreameye они 8 bit (по крайне мере все значения уложились в них). Но по факту у SE401 они используют всего 8 bit почти все (кроме тех что считают количество USB пакетов), так что похоже их можно просто наложить по порядку, так как адресация не совпадает.
По крайне мере хотелось бы в это верить. Видно что некоторые значения из моего дампа перекликаются со значениями по умолчанию у регистров в доке на SE401 и это хороший знак Smile Правда порядок не похож, да и у Dreameye регистров больше чем в доке SE401, но я уже двум дополнительным нашел объяснение по аналогии, странно что этого нет в SE401... В общем уже что-то есть, попробую как то сопоставить эти данные.

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 12.06.2015 в 21:12, отредактировал пользователь SWAT.)
12.06.2015 20:52
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #27
RE: App Dreameye Manager
Пока вот что получается. Первые 6 регистров с большей долей вероятности я определил правильно (группировка не в счет), но вот остальные... Они явно группируются, правда выглядит несколько коряво пока, может надо как то по другому. Описания для них нету в SE401, все это только предположение.

Код:
Dreameye JangGu Compression Engine register map.
Research by SWAT.
====================================================
offset: value - description
====================================================
--------------------- General ----------------------
0x00: 0x00 - Compression Engine Control Register?
0x01: 0x11 - Packet Size Register?
0x02: 0x0c - Control Register?
0x03: 0x00 - Clock Divide Register??

----------------- Vertical group? ------------------
+++ Frame Buffer A? +++
0x04: 0x5a - Lower Window Height Register?
0x05: 0x02 - Upper Window Height Register?
0x06: 0x03 - Unknown
0x07: 0x00 - Unknown

0x08: 0x00 - Test Register or Lower Packet Count A Register?
0x09: 0x00 - Test Register or Upper Packet Count A Register?
0x0a: 0x00 - Test Register or Lower Packet Count B Register?
0x0b: 0x00 - Test Register or Upper Packet Count B Register?

+++ Frame Buffer B? +++
0x0c: 0x5a - Lower Window Height Register?
0x0d: 0x02 - Upper Window Height Register?
0x0e: 0x03 - Unknown
0x0f: 0x00 - Unknown

0x10: 0x0e - Like a 0x18 reg value
0x11: 0x00 - Some status/state?
0x12: 0x00 - Some status/state?
0x13: 0x03 - Like a 0x1b reg value

----------------- Horizontal group? ------------------
+++ Frame Buffer A? +++
0x14: 0x5e - Lower Window Width Register???
0x15: 0x03 - Upper Window Width Register???
0x16: 0x0b - Unknown
0x17: 0x03 - Unknown

0x18: 0x0e - Like a 0x10 reg value
0x19: 0x01 - Some status/state?
0x1a: 0x08 - Some status/state?
0x1b: 0x03 - Like a 0x13 reg value

+++ Frame Buffer B? +++
0x1c: 0x5e - Lower Window Width Register???
0x1d: 0x03 - Upper Window Width Register???
0x1e: 0x0b - Unknown
0x1f: 0x03 - Unknown

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 14.06.2015 в 11:22, отредактировал пользователь SWAT.)
12.06.2015 22:12
Вебсайт Найти все сообщения Цитировать это сообщение
ands Не на форуме
Опытный
****

Сообщений: 565
Зарегистрирован: 22.05.2006
Рейтинг: 1
Сказал спасибо: 51
Поблагодарили 42 раз(а) в 35 сообщ.
Сообщение: #28
RE: App Dreameye Manager
(11.06.2015 10:53)SWAT писал(а):  Поигрался немного с микрофоном, накидал команду для записи звука.
Пока без каких либо настроек, просто пишет со средним усилением и в максимальном качестве (11 kHz, 16 bit). Результат сохраняется в wav файл. Кому интересно, команда в аттаче, положить надо в cmds.

Код:
sip -r -f /ide/record.wav

Запись будет длится пока не нажмете кнопку A на джойстике. По идее можно сделать запись фоном, чтобы не блокировать консоль, но пока вот так, ибо я не нашел этому практическое применение Smile
как это не найдётся.
Сват у меня такое предложение можно сделать к примеру просмотр изображений в режиме слайд шоу, допустим через 3-5 сек., и фоном будет петь любая выбранная песня.
Или ещё такой вариант, если сделать так, подобрать несколько десятков изображений их отредактировать (написать текст песен на каждой по 2-3 строчки, включить слайд шоу и петь, будет какое то подобие караоке
16.06.2015 20:47
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #29
RE: App Dreameye Manager
Ну это уже совсем другое приложение Smile

[Изображение: barbers.png]
16.06.2015 21:18
Вебсайт Найти все сообщения Цитировать это сообщение
ands Не на форуме
Опытный
****

Сообщений: 565
Зарегистрирован: 22.05.2006
Рейтинг: 1
Сказал спасибо: 51
Поблагодарили 42 раз(а) в 35 сообщ.
Сообщение: #30
RE: App Dreameye Manager
что то совсем никакой инфы толковой по этому JangGu
http://marc.info/?l=git-commits-head&m=131201304332003
поисковики кидают на Линакс, SE401 драйвер Байера, программу под камеру Camorama
20.06.2015 23:54
Найти все сообщения Цитировать это сообщение
megavolt85 Не на форуме
Супермодератор
******

Сообщений: 3161
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 186
Поблагодарили 1560 раз(а) в 918 сообщ.
Сообщение: #31
RE: App Dreameye Manager
Положу сюда чтоб не потерялось Big Grin


Прикрепления
.doc  doc_map_e.doc (Размер: 23.5 Кб / Загрузок: 4)
.doc  12_Dreameye071_e.doc (Размер: 283 Кб / Загрузок: 1)
.doc  Ft11_071e.doc (Размер: 474.5 Кб / Загрузок: 0)

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
11.10.2016 04:10
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #32
RE: App Dreameye Manager
Все эти доки я уже прошерстил на 10 раз. То, чего не хватало в KOS драйвере, я добавил в модуле для DS. Т.е. можно терять их Smile
Не хватает тут только "SEGA JangGu Information" на котором затык и произошел Sad

[Изображение: barbers.png]
(Последний раз сообщение было отредактировано 11.10.2016 в 07:20, отредактировал пользователь SWAT.)
11.10.2016 07:17
Вебсайт Найти все сообщения Цитировать это сообщение
megavolt85 Не на форуме
Супермодератор
******

Сообщений: 3161
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 186
Поблагодарили 1560 раз(а) в 918 сообщ.
Сообщение: #33
RE: App Dreameye Manager
я вот чего ещё нарыл

Код:
/*
#             (C) 2011 Hans de Goede <hdegoede@redhat.com>

# The compression algorithm has been taken from the v4l1 se401 linux kernel
# driver by Jeroen B. Vreeken (pe1rxq@amsat.org)

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA  02110-1335  USA
*/

#include "libv4lconvert-priv.h"
#include <errno.h>

/* The se401 compression algorithm uses a fixed quant factor, which
   can be configured by setting the high nibble of the SE401_OPERATINGMODE
   feature. This needs to exactly match what is in the SE401 driver! */
#define SE401_QUANT_FACT 8

static void wr_pixel(int p, uint8_t **dest, int pitch, int *x)
{
    int i = *x;

    /* First 3 pixels of each line are absolute */
    if (i < 3) {
        (*dest)[i] = p * SE401_QUANT_FACT;
    } else {
        (*dest)[i] = (*dest)[i - 3] + p * SE401_QUANT_FACT;
    }

    *x += 1;
    if (*x == pitch) {
        *x = 0;
        *dest += pitch;
    }
}

enum decode_state {
    get_len,
    sign_bit,
    other_bits,
};

static int decode_JangGu(const uint8_t *data, int bits, int plen, int pixels,
             uint8_t **dest, int pitch, int *x)
{
    enum decode_state state = get_len;
    int len = 0;
    int value = 0;
    int bitnr;
    int bit;

    while (plen) {
        bitnr = 8;
        while (bitnr && bits) {
            bit = ((*data) >> (bitnr-1))&1;
            switch (state) {
            case get_len:
                if (bit) {
                    len++;
                } else {
                    if (!len) {
                        wr_pixel(0, dest, pitch, x);
                        if (!--pixels)
                            return 0;
                    } else {
                        state = sign_bit;
                        value = 0;
                    }
                }
                break;
            case sign_bit:
                if (bit)
                    value = 0;
                else
                    value = -(1 << len) + 1;
                state = other_bits;
                /* fall through for positive number and
                   len == 1 handling */
            case other_bits:
                len--;
                value += bit << len;
                if (len == 0) {
                    /* Done write pixel and get bit len of
                       the next one */
                    state = get_len;
                    wr_pixel(value, dest, pitch, x);
                    if (!--pixels)
                        return 0;
                }
                break;
            }
            bitnr--;
            bits--;
        }
        data++;
        plen--;
    }
    return -1;
}

int v4lconvert_se401_to_rgb24(struct v4lconvert_data *data,
        const unsigned char *src, int src_size,
        unsigned char *dest, int width, int height)
{
    int in, plen, bits, pixels, info;
    int x = 0, total_pixels = 0;

    for (in = 0; in + 4 < src_size; in += plen) {
        bits   = src[in + 3] + (src[in + 2] << 8);
        pixels = src[in + 1] + ((src[in + 0] & 0x3f) << 8);
        info   = (src[in + 0] & 0xc0) >> 6;
        plen   = ((bits + 47) >> 4) << 1;
        /* Sanity checks */
        if (plen > 1024) {
            V4LCONVERT_ERR("invalid se401 packet len %d", plen);
            goto error;
        }
        if (in + plen > src_size) {
            V4LCONVERT_ERR("incomplete se401 packet");
            goto error;
        }
        if (total_pixels + pixels > width * height) {
            V4LCONVERT_ERR("se401 frame overflow");
            goto error;
        }
        /* info: 0 inter packet, 1 eof, 2 sof, 3 not used */
        if ((in == 0 && info != 2) ||
            (in > 0 && in + plen < src_size && info != 0) ||
            (in + plen == src_size && info != 1)) {
            V4LCONVERT_ERR("invalid se401 frame info value");
            goto error;
        }
        if (decode_JangGu(&src[in + 4], bits, plen, pixels * 3,
                  &dest, width * 3, &x)) {
            V4LCONVERT_ERR("short se401 packet");
            goto error;
        }
        total_pixels += pixels;
    }

    if (in != src_size || total_pixels != width * height) {
        V4LCONVERT_ERR("se401 frame size mismatch");
        goto error;
    }

    return 0;

error:
    errno = EIO;
    return -1;
}

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
29.08.2017 22:17
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 7240
Зарегистрирован: 04.01.2005
Рейтинг: 30
Сказал спасибо: 149
Поблагодарили 1215 раз(а) в 763 сообщ.
Сообщение: #34
RE: App Dreameye Manager
О спасибо, тут прям уже по полочкам все.
Жаль только что затык в общем уже не в компрессии (она же была в том драйвере SE401), а в том как запустить этот видео поток на камере.
Надо дампить maple bus в visual park...

[Изображение: barbers.png]
30.08.2017 07:24
Вебсайт Найти все сообщения Цитировать это сообщение
ands Не на форуме
Опытный
****

Сообщений: 565
Зарегистрирован: 22.05.2006
Рейтинг: 1
Сказал спасибо: 51
Поблагодарили 42 раз(а) в 35 сообщ.
Сообщение: #35
RE: App Dreameye Manager
камера в себя пишет 25сек, а потоковое видео долго можно писать в интернет, значит может какая то команда на онлайн есть?
30.08.2017 21:43
Найти все сообщения Цитировать это сообщение
megavolt85 Не на форуме
Супермодератор
******

Сообщений: 3161
Зарегистрирован: 24.03.2012
Рейтинг: 38
Сказал спасибо: 186
Поблагодарили 1560 раз(а) в 918 сообщ.
Сообщение: #36
RE: App Dreameye Manager
ands а какой длинны те видео файлы что ты выложил? по 25 сек?
сделай ещё несколько разной длинны, ну скажем 3, 5 и 10 секунд.
я ещё несколько параметров в твоём видео нашёл, но надо бы ещё и записи разной длинны

HKT-3030, Bios mod, SD mod, VGA internal mod, G1ATA mod, Region changer mod, PSU mod
31.08.2017 00:08
Найти все сообщения Цитировать это сообщение
ands Не на форуме
Опытный
****

Сообщений: 565
Зарегистрирован: 22.05.2006
Рейтинг: 1
Сказал спасибо: 51
Поблагодарили 42 раз(а) в 35 сообщ.
Сообщение: #37
RE: App Dreameye Manager
попробую на этих выходных сделать
01.09.2017 20:20
Найти все сообщения Цитировать это сообщение
ands Не на форуме
Опытный
****

Сообщений: 565
Зарегистрирован: 22.05.2006
Рейтинг: 1
Сказал спасибо: 51
Поблагодарили 42 раз(а) в 35 сообщ.
Сообщение: #38
RE: App Dreameye Manager
вот сделал на этих выходных, инструкция внутри https://cloud.mail.ru/public/7hr6/ctyaZrENK
09.09.2017 19:27
Найти все сообщения Цитировать это сообщение
 Сказали спасибо: megavolt85
ands Не на форуме
Опытный
****

Сообщений: 565
Зарегистрирован: 22.05.2006
Рейтинг: 1
Сказал спасибо: 51
Поблагодарили 42 раз(а) в 35 сообщ.
Сообщение: #39
RE: App Dreameye Manager
ну как там дела мегавольт
02.12.2017 19:44
Найти все сообщения Цитировать это сообщение
AlivE_ Не на форуме
Новичок
*

Сообщений: 19
Зарегистрирован: 16.12.2015
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 1 раз(а) в 1 сообщ.
Сообщение: #40
RE: App Dreameye Manager
Пишу здесь, чтобы не плодить темы.
Получил я пару микрофонов, но не факт что они работают. Для проверки хотелось что-нибудь записать, так и набрел на команду sip. Однако при записи консоль зависает намертво, и файлы на выходе весят 0 байт. Мертвые микрофоны, или кривые руки?Big Grin

https://www.youtube.com/watch?v=VO0oIHeT...e=youtu.be

upd: микрофоны рабочие, проверил в 240p test suite, однако почему sip зависает всё еще не ясно
(Последний раз сообщение было отредактировано 19.04.2018 в 15:45, отредактировал пользователь AlivE_.)
19.04.2018 03:36
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 3 Гость(ей)