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

User Tag List

Страница 1 из 11 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 101

Тема: Новый формат графического изображения для ZX совместимых компьютеров.

  1. #1
    Activist
    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    127
    Спасибо Благодарностей получено 
    427
    Поблагодарили
    195 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

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

    Молодость моя (начало 90-х) прошла с компьютером ZX-spectrum (уже не помню название клона),
    причем с переделанным цветным телевизором Юность Ц-401 в качестве монитора.
    Ностальгия по тем временам до сих пор не дает покоя.
    Так как по работе иногда приходится иметь дело с видеографикой,
    а так же в качестве хобби занимаюсь разработкой FPGA процессоров и
    компьютеров на них, постоянно сталкиваюсь с проблемой нехватки графический ресурсов.
    Экспериментировал с разными форматами представления изображения,
    занимался аппаратными кодеками и векторными сопроцессорами.
    На плате с FPGA, помимо своих проектов компьютеров, зашиваю и HDL клоны ZX спетрумов.
    На форуме часто вижу предложения по улучшению графики существующих игр на спектруме.
    Экспериментируя с разными принципами сжатия изображения обнаружил один очень подходящий
    способ улучшить изображение спектрума. Суть в следующем.
    Растр 256 х 192 элементов изображения с одним битом на элемент сохраняется,
    а атрибуты знакомест меняются на атрибуты блоков. Знакоместо 8х8 делится на четыре
    блока 4х4. Атрибуты блока представляются четырьмя байтами (2 байта на INK и 2 байта на PAPER)
    в формате RGB565. Формат можно изменить на RGB555 зарезервировав один бит на прозрачность.
    Таким образом объем растра сохранился (0х1800), а объем атрибутов вместо 0х300 стал 0х3000.
    Для непрерывности загрузки экрана я поставил область новых атрибутов в начало перед растром.
    Размер всего изображения стал 0х4800, где первые 0х3000 - область атрибутов блоков,
    а последующие 0х1800 - область растра. В FPGA версиях ZX спектрума изображение нужно загружать
    с адреса 0х1000, чтобы VGA контроллер работал по адресам 0х1000...0х5800. ROM по адресам
    0х0000...0х4000 используется процессором только по чтению. Можно ли новый формат реализовать в
    "железных" клонах - не знаю. Но в видеокартах наверное можно. В эмуляторах - тоже.

    При таком формате изображения конфликт атрибутов уменьшается, хотя не исчезает полностью.
    Зато количество цветов становится 64К для INK и 64К для PAPER при RGB565.
    HDL контроллер VGA на новый формат пока не сделал, чтобы проверить реально. Но написал
    конверторы на Си (в Widows) для преобразования картинок RGB888 в новый формат и обратно.
    Как причешу - выложу. По образованию я радиотехник, а не программист.
    Пока использую расширение файлов нового формата <>.scn. Может надо как-то по другому?
    Не знаю нужна ли шапка у файла нового формата для указания информации об изображении.

    Вот несколько примеров преобразования (слева оригинал RGB888, справа обратное преобразование в RGB888):
    Нажмите на изображение для увеличения. 

Название:	PARROT24_3.jpg 
Просмотров:	698 
Размер:	42.3 Кб 
ID:	59475
    Нажмите на изображение для увеличения. 

Название:	Exolon1_1.jpg 
Просмотров:	775 
Размер:	65.8 Кб 
ID:	59476
    Нажмите на изображение для увеличения. 

Название:	BUTFLA320_1.jpg 
Просмотров:	698 
Размер:	51.0 Кб 
ID:	59477
    Нажмите на изображение для увеличения. 

Название:	Meteor0_1.jpg 
Просмотров:	581 
Размер:	36.0 Кб 
ID:	59478

    Выкладываю программу для Windows (Visual Studio) с преобразованиями из BMP24 в SCN и обратно.
    https://cloud.mail.ru/public/6Lt6/6reBxdpCv
    https://cloud.mail.ru/public/79DU/LAzM1EScC

    P.S. На авторские права не претендую.
    Данный формат можно использовать где угодно и кем угодно.
    Последний раз редактировалось Ynicky; 31.01.2017 в 19:46.

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

  3. #2
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,277
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оспаде, да что же вы мучаетесь с этими атрибутами. сделайте уже нормальный 256x192x8bpp. fpga не дистрофичные, всё что угодно туда влезет. чё на LE-то экономите. вам же их не паять.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  4. #3
    Activist
    Регистрация
    06.04.2015
    Адрес
    г. Приозерск, Ленинградская обл.
    Сообщений
    299
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sayman Посмотреть сообщение
    да что же вы мучаетесь с этими атрибутами.
    экран получается в 2раза меньше,чем нормальный 256x192x8bpp,и страница под атрибуты одна всего+совместимость с оригиналом.Правда смутно себе представляю ,как на z80 ,это все добро ,обрабатывать быстро.
    Scorpion ZS-256turbo_Проф ПЗУ27040_Smuc_HDD_PCkeyMause(Scorp)_GS_512+XTR Модем(X-Trade)
    ZX-Evolution rev.С+VDAC+OldGS_512+OpenSMUC+TSFM+TS-conf
    Amiga500 1m+512k
    Schneider EuroPC
    ReVerSE-U16

  5. #4
    Master
    Регистрация
    30.11.2016
    Адрес
    г. Москва
    Сообщений
    514
    Спасибо Благодарностей отдано 
    160
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кто писать-то будет подо все это?

  6. #5
    Guru Аватар для Sayman
    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,277
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AndyD Посмотреть сообщение
    экран получается в 2раза меньше,чем нормальный 256x192x8bpp,и страница под атрибуты одна всего+совместимость с оригиналом.Правда смутно себе представляю ,как на z80 ,это все добро ,обрабатывать быстро.
    это всё даже не проблема. главное - нет никаких клешенгов и тупых атрибутов. каждая точка своим цветом. это же и красиво и удобно. а учитывая, что есть весьма дешёвые и жирные плисины, никто не мешает туда засунуть какой-нить мелко блиттер.
    если вам нафиг блиттеры не нужны и вам хочется пихать данные самолично прям в экран, то для чем вы извращаете этот режим? чем тогда стоковый 256на192 не угодил? расширьте его палитру, а остальное не трогайте.
    и ещё не понятно, почему все как огня боятся палитру 888? на моей памяти только 1 клоноавтор сделал полную палитру - Ivan Mak. У остальных вечно какие-то отмазки.
    Последний раз редактировалось Sayman; 21.01.2017 в 11:26.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  7. #6
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,530
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    208
    Поблагодарили
    166 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  8. #7
    Guru Аватар для Totem
    Регистрация
    13.12.2007
    Адрес
    Архангельск
    Сообщений
    2,189
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ynicky Посмотреть сообщение
    преобразование в RGB888
    "Екорный бабай" , когда вы успокоитесь с вашими идеями, посмотрите на SAM COUPE, ALEST 5, SPRINTER
    Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
    zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)

  9. #8
    Veteran Аватар для Raydac
    Регистрация
    16.08.2005
    Адрес
    Estonia,Tallinn
    Сообщений
    1,128
    Спасибо Благодарностей отдано 
    52
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    179 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    под атрибуты написано много софта. избавиться от них врядли получится, мне в zxpoly когда разрабатывал видеорежимы то понравился режим когда атрибуты с 4х экранов ложатся шахматкой, получается 512x384 и при этом в 8 на 8 можно играться с цветами и миксовать и совместимость со старым софтом сохраняется что недоступно тому же spec256 который только красит

  10. #9
    Master
    Регистрация
    15.02.2015
    Адрес
    г. Могилёв, Беларусь
    Сообщений
    834
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    96
    Поблагодарили
    65 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я размышлял на одном спектрумистском чате :
    <small> Сильно, много 4 байта на атрибуты блока. Надо было байт на инк и байт на папер.
    <small> Два байта на атрибуты блока. Старший бит яркость, семь младших цвета как у сэмкупа.
    <small> Размещать расширенные атрибуты в теневом экране в адресах стандартного экрана.
    <small> Переключение экран/атрибуты через порт.
    ¡Un momento, señor fiscal!


  11. #10
    Activist
    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    127
    Спасибо Благодарностей получено 
    427
    Поблагодарили
    195 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    При уменьшении атрибутов блока до 1 байта как на INK, так и на PAPER, резко ухудшается качество изображения.
    На картинках слева направо RGB888 RGB565 RGB332:
    Нажмите на изображение для увеличения. 

Название:	PARROT256_3.jpg 
Просмотров:	433 
Размер:	72.8 Кб 
ID:	59499
    Нажмите на изображение для увеличения. 

Название:	Meteor0_3.jpg 
Просмотров:	475 
Размер:	54.6 Кб 
ID:	59498
    Нажмите на изображение для увеличения. 

Название:	Exolon1_3.jpg 
Просмотров:	433 
Размер:	41.1 Кб 
ID:	59497
    Нажмите на изображение для увеличения. 

Название:	car0_3.jpg 
Просмотров:	460 
Размер:	63.5 Кб 
ID:	59496
    Нажмите на изображение для увеличения. 

Название:	BUTFLA284_3.jpg 
Просмотров:	361 
Размер:	79.9 Кб 
ID:	59495
    Нажмите на изображение для увеличения. 

Название:	apple0_3.jpg 
Просмотров:	398 
Размер:	71.7 Кб 
ID:	59494

Страница 1 из 11 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Новый, более эффективный кассетный формат
    от Barmaley_m в разделе Программирование
    Ответов: 312
    Последнее: 11.08.2018, 18:21
  2. Ответов: 22
    Последнее: 23.04.2012, 15:34
  3. Продаж картриджи для Денди и совместимых
    от djvini в разделе Барахолка (архив)
    Ответов: 27
    Последнее: 05.04.2012, 23:20
  4. Ответов: 2
    Последнее: 26.02.2005, 18:17

Ваши права

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