Log in

View Full Version : upscaling bad source - which resize function to use?


florinandrei
2nd September 2008, 08:30
The source is 384x288, 25fps progressive, cell phone quality, plenty of encoding artifacts, compressed in a format that is not very compatible with a lot of players.
I want to re-encode it to something compatible with most players today (iPhone, PSP, PS3, etc.) - MP4 with AVC/AAC. To eliminate any issue related to the image size, I want to scale it to 640x480. That size should be definitely playable by most players. The important feature here is compatibility with existing players, and a future-proof format.

The question is, which resize function to use?

I could use BilinearResize() on the hypothesis that this function will "smooth" the artifacts somewhat. On the other hand, this may introduce blur.

Or I could use Spline36Resize() in order to preserve as much of the original information as possible. On the other hand, this may accentuate the artifacts.

I will do some experiments myself, but meanwhile I was wondering if somebody has already figured out a rule to apply in such cases - scaling up almost 2x an artifact-ish source.
Assume the x264 bitrate is high enough so that no (visible) additional artifacts are introduced during this conversion.

2Bdecided
2nd September 2008, 11:03
The usual advice is nnedi twice and some denoising. e.g.

nnedi(field=0,dh=true).turnleft().nnedi(field=0,dh=true).turnright()

then some denoise / calming.

Cheers,
David.

florinandrei
3rd September 2008, 06:26
The usual advice is nnedi twice and some denoising. e.g.

nnedi(field=0,dh=true).turnleft().nnedi(field=0,dh=true).turnright()

From what I've read, nnedi is useful for scaling up exactly 2x, while I need an almost 2x scaling.

then some denoise / calming.

What do you mean? :script:

scharfis_brain
3rd September 2008, 07:08
just scale down after using nnedi...

vampiredom
3rd September 2008, 09:01
FWIW, I think EEDI2 does a better job of this than NNEDI -- and the maxd parameter allows more flexibility of performance vs. quality (and sometimes lower values will look better also). Changing pp can also help get you want you want.

EEDI2(field=0, pp=1, maxd=12).TurnLeft().EEDI2(field=0, pp=1, maxd=12).TurnRight()

*.mp4 guy
4th September 2008, 14:19
eedi2 works better (for me) on low quality sources because it has much more aggressive aa.