Важная информация

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 18 из 18

Тема: Подключение Вектора к фоторамке...

  1. #11
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,105
    Спасибо Благодарностей отдано 
    772
    Спасибо Благодарностей получено 
    643
    Поблагодарили
    398 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    60МГц это немного. STM32F405 бывают до 168, удобно будет завести его на 120 - 10х пиксельклок. Это Cortex-M4, у него нету полноценного NEON, но есть FPU и какое-то подмножество SIMD инструкций, которые наверняка можно употребить для линейной фильтрации. Уж удвоить каждый третий пиксель он точно справится.

    Чтобы цифровать видео с пиксельклоком 12 МГц достаточно иметь микроконтроллер с периферийным клоком 12МГц. Например, настраивается канал DMA на копирование из порта в память и автоматической перезагрузкой процесса. Примерно так же будет устроено и выдавливание данных наружу. Использование DMA обеспечивает регулярность процесса. Если бы не растягивание по горизонтали, можно было бы настроить все периферийные устройства так, что процессору буквально нечем было б заняться.

    Если на плате уже стоит какой-то ARM, есть шанс, что ему можно настроить PLL на 48 МГц, это даст кратную частоту. Вопрос в том, насколько гибкая у него периферия и сколько палок в колеса вставит имеющаяся на плате разводка.

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

    - - - Добавлено - - -

    Линейная фильтрация будет что-то типа:
    Код:
    out_pixel[x] = (in_pixel[0.66 * x - 1] + 2 * in_pixel[0.66 * x] + in_pixel[0.66 * x + 1]) / 4
    Больше игр нет

  2. #12
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,105
    Спасибо Благодарностей отдано 
    772
    Спасибо Благодарностей получено 
    643
    Поблагодарили
    398 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про фильтрацию это я прогнал, это бы пригодилось может быть в другой какой ситуации, но не в этой.

    Попробовал смоделировать масштабирование разными способами. Исходные картинки брал из своего эмулятора.

    http://sensi.org/~svo/image-scaling/

    Nearest:
    Код:
    out_pixel[x] = in_pixel[floor(x * scale + 0.5)]
    Linear:
    Код:
    mix(x,y,a): return x * (1 - a) + y * a
    x1 = floor(x * scale)
    a = x * scale - floor(x*scale)
    out_pixel[x] = mix(in_pixel[x1], in_pixel[x1+1], a)
    Больше игр нет

  3. #13
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    777
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    61
    Поблагодарили
    47 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уважаемый Вячеслав.

    Бесспорно, ты - авторитет в вопросах Вектора, FPGA и т.д. Однако, позволь немного советов/подсказок/"мыслей вслух":

    1. Масштабирование/интерполяция микроконтроллером требует охрененной вычмощности. Чтобы рассчитать характеристики каждого пиксела нужно произвести кучу вычислений по значениям соседних пикселов, причем алгоритм этих рассчетов - последовательный (все пикселы экрана друг за дружкой последовательно - это разумеется, но именно по каждому пикселу нужно последовательно обработать значения соседних пикселов [причем не только предыдущего, но и следующего за текущим, и, по-хорошему, еще и сверху и снизу...]). И все это надо делать с темпом, как минимум, пиксельрэйта выхлопа на VGA. Я сомневаюсь, что даже какой-нибудь навороченный ARM на это способен... Да, можно это возложить на FPGA, но повторюсь, алгоритм-то последовательный, что плохо "укладывается" в FPGA...

    2. Интерполяция (нецелочисленное масштабирование) вносит искажения по определению, и глаз это очень хорошо замечает, и это очень быстро доставляет дискомфорт...

    3. А вот целочисленное масштабирование как раз и не вносит искажений, и в FPGA прекрасно "укладывается".

    4. По Вектору уже показывал: родные Векторовские (с соотношением 4:3) 256х256 с коэффициентами 4:3 (или 512х256 с кэффициентами 2:3) тянем до 1024х768 (сохраняя Aspect Ratio 4:3). Раз для Вектора важен бордюр, то добавляем его и получаем 1280х1024 - на мониторах 17" и 19" (5:4, 1280x1024) получаем идеальное изображение!

    Отдельный "подводный камушек" - это частота кадровой... NEC Multisync LCD2080UX+ прекрасно "хавает" 50 Гц кадровой. У многих ViewSonic-ов также заявлен нижний предел кадровой от 50 Гц. И у некоторых SONY.

    Что скажете?

    PS. Еще взгляните сюда - http://zx-pk.com/forum/viewtopic.php...c0be13dcadffd0

    PPS. Форум для того и служит, чтобы обмениваться/делиться мнениями и идеями.
    Последний раз редактировалось LeoN65816; 02.01.2018 в 21:44. Причина: УКНЦ тут не причем...
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  4. #14
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    7,806
    Спасибо Благодарностей отдано 
    642
    Спасибо Благодарностей получено 
    1,773
    Поблагодарили
    1,023 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    родные Векторовские (с соотношением 4:3) 256х256
    Это спорно. Все же для бытовых ПК, у которых изображение не растягивалось на весь экран, более важен пиксельклок, чем соотношение сторон монитора или ТВ.
    Если верить этому источнику, у всех клонов вектора (кроме кристы-2) ширина точки в 7.375/6=14.75/12=1.2292 раз шире квадратной. Т.е. это фактическое соотношение сторон и 1.2292 < 4/3=1.3333.

    Убрал злостный оффтоп, про aspect ratio оставил, хотя от учета соотношения сторон в случае нехватки вычислительных ресурсов можно легко отказаться.
    Последний раз редактировалось ivagor; 02.01.2018 в 12:28.

  5. #15
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,105
    Спасибо Благодарностей отдано 
    772
    Спасибо Благодарностей получено 
    643
    Поблагодарили
    398 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    LeoN65816, 256x256 и 512x256 это только растровые части экрана. Мой размер 588х288 — это растр + респектабельная часть бордюра без которого Векторовская неполноценна.

    То, что я привел, это просто моделирование. Прикидка как оно выглядит. Можно взять и поменять параметры, подсунуть картинку другого размера, можно добавить другой алгоритм и посмотреть как оно будет —*это бесплатно пока не в железе. При определенном подборе размеров, для частного случая формулу можно аппроксимировать изменением шага. Например, взяли по горизонтали 533 точки и растягиваем их на 800, получается масштаб 1.5. Вместо умножения на 1.5 мы просто пропускаем 1 шаг через два когда считаем входную координату. Но формула-то остается той же самой, это то же самое масштабирование выбором ближайшего пикселя. Никаких бешеных вычислительных мощностей тут не требуется.

    Интерполяция так же оптимизируется для частных случаев. Справится ARM или нет вопрос десятый, полезно знать как это выглядит и иметь код, на основе которого можно начинать делать приближенную версию для частного случая. На мой взгляд, например, это выглядит принципиально лучше, чем без интерполяции. Почему раскормленному ARM-у не справиться с этим, не сделав я тоже сказать не могу, вычисления не невесть какие, делений нет. Не на 60 МГц, конечно! Но если на FPGA, так только лучше, они для этого предназначены.

    Если сделать по-вашему, то все эти процессы будут происходить внутри монитора. Результат все равно будет интерполированым. Монитор внутри себя упихает эти 1024, 1152 или сколько получится точек в 800.Хороший монитор будет наверное уметь интерполировать хорошо. Про фоторамку у меня есть сомнения.

    Я понимаю, что у вас уже есть готовое решение, но мы-то тут фантазируем на тему того, что KTSerg хочет сделать. 50 Гц она умеет, это мы уже знаем.
    Больше игр нет

  6. #16
    Veteran
    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,654
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    301
    Поблагодарили
    212 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Блин я поражаюсь...
    У меня не получается из Cortex-ов выдавить поток для формирования картинки, а тут наткнулся (цитата):
    "...Современный, компактный вариант легендарного ZX Spectrum на базе AVR. ..."
    http://good-kits.ru/nabory-bloki-i-m...x-spectrum-v2/
    это не реклама, просто если бы они написали "на базе Altera" я бы понял... а тут на базе AVR...
    чё там AVR забыла, SD-карту читает?

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17
    Sinclair User Аватар для Eltaron
    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,045
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    463
    Поблагодарили
    326 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от KTSerg Посмотреть сообщение
    чё там AVR забыла, SD-карту читает?
    В свободное от карты время ещё эмулирует Z80 и всю периферию. Это же http://zx-pk.ru/threads/13747-zx-spe...oskhemakh.html
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI

  9. #18
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,105
    Спасибо Благодарностей отдано 
    772
    Спасибо Благодарностей получено 
    643
    Поблагодарили
    398 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну как же, это наш Lisitsin наверняка?
    http://zx-pk.ru/threads/19442-polnyj...hodnikami.html

    - - - Добавлено - - -

    Eltaron, хехе.
    Больше игр нет

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Временные диаграммы Вектора
    от ivagor в разделе Вектор
    Ответов: 123
    Последнее: 16.07.2019, 16:51
  2. Рива Рейд для Вектора
    от svofski в разделе Вектор
    Ответов: 112
    Последнее: 09.05.2019, 13:33
  3. CP/M для Вектора и Форматы файлов
    от Black Cat / Era CG в разделе Вектор
    Ответов: 35
    Последнее: 03.07.2016, 12:30
  4. Конкурс программ для Вектора
    от ivagor в разделе Вектор
    Ответов: 11
    Последнее: 13.08.2009, 13:07
  5. продаются БП от Вектора (в магазине)
    от poisk в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 06.03.2009, 15:51

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •