• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Best way to upscale 240p contents to 4k resolution?

What is the best result for you?

  • Method 1

    Votes: 2 8.0%
  • Method 2

    Votes: 3 12.0%
  • Method 3

    Votes: 1 4.0%
  • Method 4

    Votes: 0 0.0%
  • Method 5

    Votes: 0 0.0%
  • Method 6

    Votes: 1 4.0%
  • It's better to try something else

    Votes: 16 64.0%
  • Method 7

    Votes: 1 4.0%
  • Method 8

    Votes: 0 0.0%
  • Method 9

    Votes: 1 4.0%
  • Method 10

    Votes: 0 0.0%
  • Method 11

    Votes: 0 0.0%
  • Method 12

    Votes: 0 0.0%
  • Method 13

    Votes: 0 0.0%
  • Method 14

    Votes: 2 8.0%
  • Method 15

    Votes: 1 4.0%
  • Method 16

    Votes: 1 4.0%
  • Method 17

    Votes: 0 0.0%
  • Method 18

    Votes: 0 0.0%
  • Method 19

    Votes: 2 8.0%

  • Total voters
    25

Skifi28

Member
When I saw this bumped, I was expecting star wars jokes.


w0kCMYn.gif
 
Hello! 🙂

I posted the AviSynth scripts used for each video on YouTube in the comment section.




I know, I cooked lots of strange things! 😄 But I tried each time to get the right visual alchemy.

The problem is that I tried to upscale 480p contents in parallel with all these methods adapted, but sometimes it was good with 240p resolution and not with 480p, other times it was the opposite.

My goal was to have something which is good with all contents, but it's complicated.
 
I was going on a new thing, it was very great with 480p contents, but a bit artificial and unatural with pixel art contents.

And then, I compare with the script of the Method n° 7, and I think it's great! :messenger_smiling:

You have chosen the Method n° 7, so I think I will keep it :messenger_winking:

(the only problem with this method is that there is more ringing)


Thank you very much everybody for your votes! (y)
 
Oups! In fact... I just noticed that it wasn't for Method n°7 that people voted, but for "It's better to try something else" "pie_tears_joy:

But it would be great if somebody could propose something with pictures... :pie_winking:

I'm sure that some people are better than me for this kind of things.
 
In fact, as I said above, my first goal is to have something great with 480p contents, but ideally it would be great if it could be great with 240p contents to.

With 3D cinematics, it's not really a problem, but with pixel art games it is, because the aspect was so linked to the CRT technology and in the other hand we are today so used to the raw aspect too with the modern pixel art games, that it's a bit complicated to find the right balance.

I wanted something which is great with everything, but maybe it's impossible...
So I focused one last time exclusively on what I want for 480p... and I think it's great! :pie_grinning_big_eyes:

With 480p it's great... with 240p contents, I need your opinions :pie_thinking:




Thank you very much! :pie_ssmiling:


With cinematics, I think it's good!
With Super Nes games, I have a doubt... Except for Super Castlevania IV ! I think it's super great with this one! :pie_smiling:
 

digdug2

Member
Glad you found a method that makes you happy. I have a bunch of old DVDs that will never see an official HD release. I have tried different ways to upscale them but could never get it to work satisfactorily.
 
Thanks! :messenger_winking:

There is just one problem with the Nnedi3 filter that I used (watch where I put the red circles) : :messenger_confused:

hsZgEqZ.png


As you can see, it creates some kind of seperations between pixels, whereas it should be like that:

IXSImPe.png


Maybe it is only a little drawback, I don't know, but as usual, it's not perfect! :messenger_smirking:

But otherwise, I like the image with my script (I wrote it in the comment section of my last video)!
Nothing amazing with the script, but as always, I just tried to cook something that could be satisfying visually :messenger_smiling_with_eyes:

But yes, I understand your problem! It's hard to find the perfect method! :messenger_confused:
Even with AI upscaling it isn't perfect.

I tried so many things too. Nothing works like the CRT screens did with digital images.
 
Some people will like this I think! :messenger_tongue:

I wanted to try another CRT shader with AviSynth, but just for the fun, because for videos, I will definitely not use them. The effect is too variable when the image is downscaled or upscaled.

But just to for playing or with still images, it's great!

You can find the plugin for AviSynth here: https://forum.doom9.org/showthread.php?t=170732


I tried :

  • Cromaclear display type
  • Aperture grille display type
  • Simple scanlines without phosphor effect

Click on the spoilers to see the picture!


kMyJRe.png


kMySmv.png


kMyUuD.png

kYieDi.png


kYiFsb.png


kYixG0.png

kYiGHq.png


kYiaXA.png


kYj83Q.png

kYjj9k.png


kYjT3P.png
kYjJL9.png


kYjKi7.png


kYjDax.png


kYj5Mo.png


kY0iKz.png


kY0gYr.png


kY0RS0.png

kY0Vqa.png


kY09Ye.png


kY0q2k.png

kY0BCx.png


kY0sx1.png


kY041c.png

kY0pFZ.png


kY0S2o.png


kY0Yp5.png

As you can see, with still image, it's great... but for videos, as I said, I think it would be problematic :messenger_neutral:
The biggest issues are the loss of brightness and the moiré effect when the pictures are downscaled.

It's the main reason why I don't use CRT filters for videos.

For a perfect effect, the scale of the image has to be 1:1.
 
I found the sweet spot! For me... 🙂



I did my tests with some Tomb Raider 1 et 2 videos. I compared with videos of these 2 games on CRT TVs on YouTube.
My goal was always to have a consistent image, focused on the representation, not the pixels.

We are too focused on the pixels nowadays.

Finished... this time! 😄
 
Last edited:
Hi! :messenger_smiling_with_eyes:

I had a relapse... :messenger_grinning_sweat:

In fact, the pursuit for perfection is an never-ending story :messenger_relieved:

I did a new video. I'm close to what I'm looking for.
It's like I could see what I want, but there is always a little something that I can't achieve :messenger_neutral:

It's frustrating...!

 
Hello! :)

It has been a long time since I didn't try something new, because in fact, I thought that I was face to a wall.
But these last times were hard for me with my job and so I decided to relax and I got some new inspiration... :p

In fact, the thing which bothered me was always that I had in mind a feeling, a souvenir that the aliasing was particular on CRT TVs with the old 2D games, whereas on a modern screen, it doesn't match this souvenir, but not only because the pixels are more visible and bigger.

It's something else. And it's actually definitely the black lines between scanlines which gave this particular look with the aliasing, as you can see here:

5GsbB0r.png


If we squint, we can definitely see that all is blending together, giving this particular aliasing that is so different from the way it looks with the raw image on a modern screen.

And so, I tried to understand: why? 😄

Fot me, it's simple: something that is missing is adding some informations!

It's a paradox and a trick with the brain.


It's why I tried to do the exact opposite...
Or in fact, in a different way, with some kind of blur 😉

If it's only a trick with the brain and that we can add information with something missing (the blank lines between scanlines), I supposed that we can to the same thing by adding some blur, whereas we already had doubled the resolution twice.

Theoretically, the same exact pixels than in the original image are still here. But I add an information by blurring them a bit, like the black scanlines do with no information.

But no, in fact, no information is a information too! Here is the logic!

So I tried to find a correct value for the horizontal blur at first in my AviSynth script with the Blur function.

And I found a value that is between 0.25 and 0.50. The average value is: (0.25 + 0.50) / 2 = 0.375

But it was more complicated vertically, because there should be black scanlines = information with no information.

In fact, with the same value, there would be the same information. So I add something (sharpness, but in fact not, because we are only blurring the image, we are not adding sharpness), with less information (still by blurring the image).

I know that it's a strange logic, maybe this even madness... 😛
But with the half of blur vertically... so: 0.375 / 2 = 0.1875

... I was surprise to see that there is something similar to the effect of the black scanlines, but without them.

PaHXF6u.png


I think it's simillar, but in an other way, with an opposite idea.

If we compare closely:

DZKeAS8.png


9XklbDU.png


You will not be necessarily agree, but if we think one second how the trick operates with scanlines, we can suppose that it's the same kind of think, but in a different way.

In any case, I think that it's great in movement.



I think that I won't try other things, or for other kind of contents, but I think, I understood how the illusion works.
Know, we only have 2 choices: do something similar with CRT shaders or something different with the same intention, but with another trick.


Have a nice day!
 
Last edited:
Hey everybody! :)

I did a last comparison but with a better CRT shader, and I think it's definitely not bad with my last video ;)

7ckbM2o.jpeg
ACph4nd.png
vuqH7bl.jpeg
xsvvIps.png


Of course, with a CRT shader, it's great! 😊

But it's always the same problem with videos. If the compression is bad, which is the case on YouTube, the CRT aspect will be destroyed.

By the way, I used this function with AviSynth to emulate the CRT aspect: http://avisynth.nl/index.php/Crt_display

You can tweak it in many ways: https://forum.doom9.org/showthread.php?t=170732

I stayed the most basic with this:

AviSource("Super Nintendo videos.avi").ConvertToRGB24 ## for a resolution of 256 x 224
ar = 8.0 / 7.0
crt_display (4*ar, 4, phosphor=false, scandist=1)
Resize8(2820, 2160, kernel="Blankman4", kernel_c="Blankman4")

AviSource("PS1 and Dreamcast videos.avi").ConvertToRGB24 ## for a resolution of 320 x 240
ar = 1.0
crt_display (4*ar, 4, phosphor=false, scandist=1)
Resize8(2880, 2160, kernel="Blankman4", kernel_c="Blankman4")

Have a nice day... night?!

I don't know. It's 01:39 AM in France! 😄
 
Last edited:
Top Bottom