Konwerter grafiki

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Konwerter grafiki

#1 Post autor: marlow75 »

RetroPIC - prosty konwerter grafiki dla maszyn retro. Pomoże zamienić nowoczesne zdjęcie w grafikę retro którą można wyświetlić na prawdziwym C64 lub emulatorze.

Źródła: https://github.com/marlow75/retropic. Na prośbę mogę przygotować uruchamialną paczkę.

Gordian
Posty: 234
Rejestracja: 14 cze 2021, 13:32

Re: Konwerter grafiki

#2 Post autor: Gordian »

Cześć,
Zaskakuje mnie ilość możliwości konwersji.

Porównałem sobie wyniki chyba wszystkich kombinacji i tu https://www.micheldebree.nl/retropixels/ wypada trochę lepiej (pozostaje więcej szczegółów).

Niemniej świetne narzędzie!

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#3 Post autor: marlow75 »

Dzięki za info, tej stronki nie znałem :)

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#4 Post autor: marlow75 »

Po uwagach kolegi dodałem dithering algorytmem Atkinsona który błąd koloru dystrybuuje w otoczeniu piksela w mniejszym stopniu niż standardowy Floyd-Steinberg działając bardziej lokalnie. Poprawia to jakoś grafiki dla maszyn z niewielką paletą (duży błąd) czyli dla C64, ZX czy CPC (tu duża poprawa). W przypadku ST czy Amigi ten algorytm obniża jakość, choć nie zawsze.

Gordian
Posty: 234
Rejestracja: 14 cze 2021, 13:32

Re: Konwerter grafiki

#5 Post autor: Gordian »

A czy .jar został zaktualizowany? Nie widzę możliwości wyboru ditheringu.

Brakuje mi opcji podglądu efektu live - obecnie trzeba przy zmianie opcji zamykać preview, ładować zdjęcie od nowa. Chyba, że coś źle robię.

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#6 Post autor: marlow75 »

Faktycznie, jar był stary. Coś poszło nie tak przy commit.

Teraz powinien być już zaktualizowany, Na wszelki wypadek sprawdziłem pobranie.

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#7 Post autor: marlow75 »

Aplikacja otwiera dla każdej kombinacji oddzielne okno - okna są niezależną kopią parametrów pracy w czasie wywołania. Parametry tej konfiguracji są pokazywane na belce okna podglądu.

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#8 Post autor: marlow75 »

Ostatnia, dzisiejsza aktualizacja

- zmiana algorytmu pliku wykonywalnego - basic -> kod maszynowy
- poprawa obliczania koloru - zmniejszenie precyzji obliczeń = mniej zaszumiona grafika
- drag and drop na ekranie opcji - wystarczy upuścić obrazek by dokonać konwersji
- drobne poprawki algorytmów ditheringu

Pozdrawiam użytkowników forum

Gordian
Posty: 234
Rejestracja: 14 cze 2021, 13:32

Re: Konwerter grafiki

#9 Post autor: Gordian »

Hej!
Dobra robota. Dużo ułatwia możliwość przeciągania plików.
Czy jest możliwe wprowadzenie ditheringu Ordered? Pytam, bo cały czas wydaje mi się, że wspominany przeze mnie wyżej konwerter lepiej konwertuje (przynajmniej źródłowy obrazek), ale stosuje wyłącznie albo brak ditheringu, albo ordered na różnych wielkościach macierzy.

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#10 Post autor: marlow75 »

[quote=Gordian post_id=47429 time=1677687926 user_id=2
Czy jest możliwe wprowadzenie ditheringu Ordered? Pytam, bo cały czas wydaje mi się, że wspominany przeze mnie wyżej konwerter lepiej konwertuje (przynajmniej źródłowy obrazek), ale stosuje wyłącznie albo brak ditheringu, albo ordered na różnych wielkościach macierzy.
[/quote]

Muszę zmienić podejście dla multicolor z doborem palety bo sam atkinson (apple) chyba lepiej "wygląda" niż bayer choć może się mylę i warto sprawdzić. Próbowałem kilku sposobów doboru koloru ale nic po za populacyjnym (częstość użycia) ciekawego nie wyszło. Niestety lowres wykorzystuje algorytmy hires a tam istotna jest jasność przy doborze koloru. Hires wydaje mi się że całkiem dobrze oddaje klimat obrazka, lepiej niż ten na stronce. Można to sprawdzić na miniaturach np na belce w windows i kobiecych aktach :) Jest i klimat kolor i szczegół (no prawie).

Pozdrawiam

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#11 Post autor: marlow75 »

Po dłuższej przerwie dodałem eksperymentalną konwersję do PETSCII. Wszystkie 256 znaków zapakowane są do sieci która wybiera symbol lub znak. Niestety brak drugiego koloru jest wyraźnie zauważalny. Działa eksport do prostego pliku wykonywalnego. Gdyby kogoś to interesowało mogę dorobić eksport do jakiegoś formatu środowiska IDE. Taka konwersja może być fajnym punktem startu.

To podejście z marszu więc sieć rozpoznająca znaki jest wciąż na domyślnych ustawieniach. Nadal spory błąd sieci i istniejący problem ze zbieżnością dla parametrów ale to jest do przewalczenia mam nadzieje.

Pozdrawiam wszystkich

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#12 Post autor: marlow75 »


marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#13 Post autor: marlow75 »

Witam,

Przybyło kilka zmian głównie dla maszyn 8 bitowych w tym C64. Tryb PETSCII przestał być już eksperymentalnym. Dla tego trybu istnieją dwa warianty algorytmu dopasowania: preferencja znaku, preferencja semigrafiki.

Dołożono też nowy eksperymentalny panel z możliwością automatycznego dopasowania kontrastu zdjęcia przed jego konwersją. Pierwszy z wariantów pracuje na całym zdjęciu, drugi na jego fragmentach. Wyższy kontrast pozwala "wyciągnąć" szczegóły zdjęcia w jasnych i ciemnych jego fragmentach - wyrównanie histogramu jasności. W kolejnej wersji programu dojdzie trzeci algorytm z aproksymacją kafelkową.

Pozdrawiam

Gordian
Posty: 234
Rejestracja: 14 cze 2021, 13:32

Re: Konwerter grafiki

#14 Post autor: Gordian »

Otrzymuję "A JNI error has occured...". W przypadku starszych wersji jest ok. Czy coś jest nie tak z jar'em czy powinienem przeinstalować środowisko Javy?

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#15 Post autor: marlow75 »

Gordian pisze:
08 cze 2023, 18:36
Otrzymuję "A JNI error has occured...". W przypadku starszych wersji jest ok. Czy coś jest nie tak z jar'em czy powinienem przeinstalować środowisko Javy?
Niestety wymagana jest wersja JAVA 16. Za jakąś chwilę wszystkie algorytmy pójdą w wektory. Cała arytmetyka będzie wykorzystywała AVX.

Awatar użytkownika
thevoid
Posty: 64
Rejestracja: 27 wrz 2017, 15:51

Re: Konwerter grafiki

#16 Post autor: thevoid »

Hej, czy rozważałeś wyciągnięcie logiki tej aplikacji do osobnego kodu / biblioteki tak aby był on GUI-less? Chętnie zintegrowałbym taką funkcjonalność z moim RetroBuildToolem.

Jaka jest licencja OSS dla Twojego kodu? GitHub pozwala na wybór takowej i dodanie jej jako pliku LICENSE niemalże z automatu.

Dobra robota!

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#17 Post autor: marlow75 »

thevoid pisze:
28 cze 2023, 16:25
Hej, czy rozważałeś wyciągnięcie logiki tej aplikacji do osobnego kodu / biblioteki tak aby był on GUI-less? Chętnie zintegrowałbym taką funkcjonalność z moim RetroBuildToolem.

Jaka jest licencja OSS dla Twojego kodu? GitHub pozwala na wybór takowej i dodanie jej jako pliku LICENSE niemalże z automatu.

Dobra robota!
Myślałem że jak zakończę pracę nad algorytmami i pojawi się wersja z numerem 1.0 to będzie czas na refactor kodu i wtedy algorytmy będą stanowiły odrębny fragment. Teraz zacząłem już pracę nad migracją algorytmów do AVX i to trochę zajmie.

Dam znać jak pojawi się wersją z biblioteką.

Pozdrawiam

marlow75
Posty: 29
Rejestracja: 07 lut 2023, 14:04

Re: Konwerter grafiki

#18 Post autor: marlow75 »

Witam,

Po dłuższej przerwie kolejny mały kroczek. Poprawiłem paletę która bardzo wpływa na jakość konwersji szczególnie dla trybów blendowanych. Teraz paleta to ulepszone PEPTO a dla zakładki z nowymi extra trybami (eksperymentalne interlace i mci) paleta jest za każdym razem wyliczana C64C (w przyszłości slajdery umożliwią jej drobne modyfikację w locie). MCI jest w bardzo wczesnej fazie. Mieszanie kolorów na CRT nie jest mieszaniem ani w YUV ani w RGB, to raczej mieszanie ważone i wygląda na to że wagi nie są stałe dla każdego z kolorów a zależą od konkretnej pary więc to trochę potrwa. Nie mniej jest szansa że MCI da się jakoś tam zrobić na tyle że większość grafiki będzie się dało skonwertować i wyświetlać w kilkudziesięciu kolorach.

Jarkę da się wykorzystać jako lib - klasy Renderer odpowiadają za konwersje.

ODPOWIEDZ