For the low budget people who are using GH2 these days:
GPUresize is a plugin for Premiere and After Effects. It has a new feature called stairstep upscaling. This feature combined with the built in Kaiser upscaling algorithm deliver amazing results for upscaling 720p to 1080p. The annoying aliasing almost disapears.
http://www.aescripts.com/gpuresize/
Test the trial version with this footage to see the results (slow the footage to 24p/25p/30p and compare the upscaling render without and with GPUresize kaiser+stairstep):
http://216.18.212.226/PRODS/DMCGH2/FULLRES/yvidDMCGH2_720p_HQ_00015.MTS
sorry but I can't see anything amazing compared to premiere's upscaler.
In my tests I found a better workflow to get best results:
record 720p50 or 720p60 in GH2, use sharpness -1
create a project with cuda acceleration
create a 1080p timeline with desired frame rate
import the 720p clip and interpret footage to the desired frame rate
put the 720p clip in 1080p timeline, keep sequence settings
apply the gpuresize effect
set resolution to custom 1920 x 1080
set interpolation method to "kaiser"
enable "stairstep" option
render the footage to 1920x1080, take long time...
import the rendered 1080p upscaled footage
put it in a 1080p timeline
apply unsharp mask effect and set it to: 100 - 0,3 - 0
render the footage
now the GH2 720p will look like it was recorded in 1080p
So I should do each step of your workflow for the 800 shots in my documentary? It does not seem very practical for a pro workflow.
This method can also be used to upscale 1080p to 4k.
In my tests with G7 footage, the Gpuresize effects settings are the same, the unsharp mask changes to: 70 - 0,3 - 1
@Apefos Could you provide examples of 720pto4k upscale ? Thanks!
My tests was done with:
GH2 footage: 720p to 1080p (I liked it, looks like was shot in 1080p)
G7 footage: 1080p to 4k (blurry results, without aliasing, but blurry, very different compared to native 4k, only worth if you need slow motion overcrank, because GH4 and G7 do not have 4k60p)
I did not test 720p to 4k, but I think it does not worth the effort.
Comparisons:
Perceived resolution is a mix of Acutance and Resolution.
The 720p video from GH2 has enough resolution to satisfy the eyes, but it also has an undesirable amount of aliasing mainly in vertical direction. When doing the upscale, the GpuResize plugin with the Kaiser method and the stairstep fix can reconstruct the image and remove the aliasing making the image agreable to the eyes.
After the upscaling the 720p video looks good, but it is soft because the acutance is low, so the unsharp mask effect corrects this making the acutance enough to increase the perceived resolution.
This way the 720p video from GH2 can be intercut with 1080p video in timeline without significant resolution difference.
http://www.cambridgeincolour.com/tutorials/sharpness.htm
https://en.wikipedia.org/wiki/Acutance
https://en.wikipedia.org/wiki/Unsharp_masking
Respecting a view distance of 2x the screen width or more makes the image looking pretty good to enjoy the content, not just due to the perceived resolution, but also due to be a distance which makes the total screen image perception less invasive and more agreable.
When developing this upscaling method, the GH2 camera settings was set to:
Profile: Standard
Contrast -2
Sharpness -1
Saturation -2
Noise Reduction -2
I have gh1, gh2, gh4; been follow up your posts. Your continous works make this forum one of the best, i would say -;)
Hey Apefos. That's a very interesting guide, thanks for sharing it and for using GPUResize!
So are you basically saying that the image lacks some subjective sharpness after the stairstep upscaling? We could add some built-in post effects into GPUResize, which might be a bit faster than fetching the image from GPU to RAM for Premiere's unsharp effect, but did you consider using Lanczos filter instead if Kaiser, since it adds more sharpness/ringing?
I did some try in the Lanczos and compared to Kaiser. Kaiser is much better in terms of removing aliasing, and the unsharp mask after kaiser+stairstep works better than lanczos.
It would be great idea if you implement a unsharp mask post effect in the GpuResize, with the three sliders: amount, radius, threshold. Unsharp Mask is much better than simple Sharpen effect because it has less introduction of aliasing.
About the StairStep: I am very impressed about it. I did a look in some parts of image at 400% zoom and I perceived that it reconstructs the image and removes the aliasing and blocking. It is amazing.
About Kaiser vs Lanczos: I also looked at 400% zoom. Lanczos is sharper, but Kaiser reconstructs the image much better also, and helps to remove aliasing.
The GH2 720p image is full of aliasing, and this combination (kaiser+stairstep) is magical to save the image.
I dont think the softness after upscaling is a problem of kaiser or of stairstep. I think it is just the nature of upscaling. Of course there are more sharper methods like Lanczos, but Lanczos is not effective to remove the aliasing. The small amount of softness is a price to pay when the main goal is to remove the aliasing, and USM can solve it.
Maybe Lanczos can be better if the original image do not have strong aliasing, but for GH2 720p Kaiser+stairstep is a must have.
So apply a little amount of USM (unsharp mask) after the upscaling was the solution I found to make the image looks like was shot in 1080p. But it was a very little amount, just to increase acutance to best point.
Your idea is perfect, implement a post effect unsharp mask with three sliders in the plugin.
Do you notice a single pixel green line on the sides when you use this ?
1080p to 4k upscale
I get a single pixel width empty column. Otherwise the conversion is clean.
https://www.dropbox.com/s/jm0jsk0z4uvejx4/Screen Shot 2017-03-20 at 3.40.56 PM.png?dl=0
You can see the green line on the right side.
I do not know the reason for the green column, maybe @polesandzeroes can help us.
Got an idea: try to type the size: 3840 and 2160 values in custom mode instead of choose values.
Also experiment the aspect ratio settings.
Actually its an artifact due to Cineform conversion. I changed to 5DtoRGB and the artifact is gone.
I found a way to avoid the need of unsharp mask after gpuresize.
Shot 720p with GH2 with sharp -1 in camera.
Before apply gpu resize, denoise the footage with neatvideo and use sharpening in 10% only in luminance, with prevent oversharpening enabled. Then render to 720p.
Then do the upscale with gpuresize to 1080p with kaiser and stairstep enabled and render to 1080p.
Footage will be ok.
I did this with 720p60 iso 2000 from GH2 and works pretty good. (Using last The End NR4 patch from GH2 bundle).
Using the neatvideo presets and profiles uploaded in the "GH2 Bundle 08-27-2017" before upscaling, then after upscaling the unsharp mask can be 80 - 0,2 - 0
Disabling mercury engine and using software only can help to avoid system crash when using GPUResize.
I did some new tests upscaling GH2 and NEX-5N from 1080p to 4k and the results are very good.
I used the same approach, "Kaiser + StairStep" in the GPUResize plugin.
When seeing the upscaled results in a 4k tv, it is better than seeing the 1080p version, maybe because the GPUResize plugin upscale is better than the tv upscale.
Before the upscale to 4k, the GH2 and NEX-5N footage was denoised and rendered to 1080p using the neatvideo presets and profiles that I uploaded in the other topics.
It looks like you're new here. If you want to get involved, click one of these buttons!