Τελευταία στην κατηγορία των προβολέων γίνεται αρκετή συζήτηση για την όξυνση της εικόνας.
Ας δούμε τι θα μπορούσαμε να κάνουμε κι εμείς εντελώς ανέξοδα με την χρήση του avisynth.
To συγκριμένο σκριπτάκι που θα χρησιμοποιήσω εδώ είναι ενός χρήστη του doom9 του Didee.
Eίναι πολύ «αυστηρό» οπότε προϋποθέτει η πηγή του video να είναι πολύ καλή.
Αν έχετε πολύ SD υλικό ή πολύ συμπιεσμένα BD rips, WEB-DL κτλ καλύτερα να μην ασχοληθείτε.
Αφορά κυρίως Full BluRay 1080p23/24 ή πολύ καλά δικά σας rips των 720p.
Σε πόρους επίσης είναι πολύ απαιτητικό, πιστεύω θα ταλαιπωρήσει οποιαδήποτε CPU.
FineSharp By Didee:
Πηγή: Eπίσημη Σελίδα|Avisynth και το FineSharp()@doom9
Το μόνο που χρειάζεται είναι άλλα δυο plugins:
Ας τα πάρουμε όλα τα βήματα από την αρχή:
εκτός του ffdshow , δείτε στα αντίστοιχα νήματα των
players πως μπορείτε να βάλετε το ffdshow raw filter
Παραδείγματα με Pattern σε σχέση με άλλους αλγόριθμους sharpening
Crop 1:1 (χωρίς scaling):
Ενδεικτικά παραδείγματα από κανονικό αρχείο 1080p:
Οι εικόνες είναι στιγμιότυπα από την ταινία της RedBull - Αrt Of Flight
Για μένα ένα από τα καλύτερα μπλε δισκάκια που έχουμε δει.
Στα patterns σίγουρα φαίνεται περισσότερο η διαφορά,
αλλά και στις 2 πρώτες φωτογραφίες το αποτέλεσμα είναι πολύ καλό
ειδικά αν λάβουμε υπόψιν το ελάχιστο ringing.
Καλύτερα να κλικάρετε πάνω στις φωτογραφίες
για να τις δείτε στο κανονικό τους μέγεθος.
Ας δούμε τι θα μπορούσαμε να κάνουμε κι εμείς εντελώς ανέξοδα με την χρήση του avisynth.
To συγκριμένο σκριπτάκι που θα χρησιμοποιήσω εδώ είναι ενός χρήστη του doom9 του Didee.
Eίναι πολύ «αυστηρό» οπότε προϋποθέτει η πηγή του video να είναι πολύ καλή.
Αν έχετε πολύ SD υλικό ή πολύ συμπιεσμένα BD rips, WEB-DL κτλ καλύτερα να μην ασχοληθείτε.
Αφορά κυρίως Full BluRay 1080p23/24 ή πολύ καλά δικά σας rips των 720p.
Σε πόρους επίσης είναι πολύ απαιτητικό, πιστεύω θα ταλαιπωρήσει οποιαδήποτε CPU.
FineSharp By Didee:
Code:
# Small and relatively fast realtime-sharpening function,
# for 1080p, or after scaling 720p -> 1080p during playback (to make 720p look more like being 1080p)
# It's a generic sharpener. Only for good quality sources!
# (If the source is crap, FineSharp will happily sharpen the crap.) ;)
# Noise/grain will be enhanced, too. The method is GENERIC.
#
# Modus operandi: A basic nonlinear sharpening method is performed, then the *blurred* sharp-difference gets subtracted again.
#
# - Didee
function FineSharp(clip c, int "mode", float "sstr", float "cstr", float "xstr", float "lstr", float "pstr", float "ldmp")
{
mode = default(mode, 1 ) # 1 to 3, weakest to strongest. When negative -1 to -3, a broader kernel for equalisation is used.
sstr = default(sstr, 2.0 ) # strength of sharpening, 0.0 up to ??
_cstr = spline(sstr, 0,0, 0.5,0.1, 1.0,0.6, 2.0,0.9, 2.5,1.00, 3.0,1.09, 3.5,1.15, 4.0,1.19, 8.0,1.249, 255.0,1.5)
_cstr = (mode>0) ? _cstr : pow(_cstr,1./1.25)
cstr = default(cstr, _cstr) # strength of equalisation, 0.0 to ? 2.0 ? (recomm. 0.5 to 1.25, default AUTO)
xstr = default(xstr, 0.19 ) # strength of XSharpen-style final sharpening, 0.0 to 1.0 (but, better don't go beyond 0.249 ...)
# Viscera parameters
lstr = default(lstr, 1.49 ) # modifier for non-linear sharpening
pstr = default(pstr, 1.272) # exponent for non-linear sharpening
ldmp = default(ldmp, sstr+0.1) # "low damp", to not overenhance very small differences (noise coming out of flat areas)
str1 = sstr
str2 = cstr
SSTR = string(sstr)
CSTR = string(cstr)
LSTR = string(lstr)
PSTR = string(pstr)
LDMP = string(ldmp)
rg=mode>0?11:20
b = (abs(mode)==1) ? c.removegrain(11,-1).removegrain(4,-1)
\ : (abs(mode)==2) ? c.removegrain(4,-1).removegrain(11,-1)
\ : (abs(mode)==3) ? c.removegrain(4,-1).removegrain(11,-1).removegrain(4,-1) : c
shrpD = mt_lutxy(c,b,"x y - abs "+LSTR+" / 1 "+PSTR+" / ^ "+SSTR+" * x y - x y - abs 0.001 + / * x y - 2 ^ x y - 2 ^ "+LDMP+" + / * 128 +")
shrp = (str1<0.01) ? c : c.mt_adddiff(shrpD,U=2,V=2)
shrp = (str2<0.01) ? shrp : shrp.mt_makediff(shrpD.mt_lut("x 128 - "+CSTR+" * 128 +").removegrain(rg,-1),U=2,V=2)
shrp = (xstr<0.01) ? shrp
\ : mt_lutxy(shrp,shrp.removegrain(20,-1),"x x y - 9.9 * +",U=2,V=2).repair(shrp,12,0).mergeluma(shrp,1.0-xstr)
return(shrp)
}
Πηγή: Eπίσημη Σελίδα|Avisynth και το FineSharp()@doom9
Το μόνο που χρειάζεται είναι άλλα δυο plugins:
- RemoveGrain
- MT-Masktools
- Repair
Ας τα πάρουμε όλα τα βήματα από την αρχή:
- Κατεβάστε την τελευταία έκδοση Avisynth.
- Κατεβάστε το avisynth.dll και βάλτε το στον φάκελο
C:\Windows\System32 για 32-bit λειτουργικό και C:\Windows\SysWOW64 για λειτουργικό x64 - Kατεβάζετε τα plug-ins MaskTools2 & Removegrain
- Φτιάξτε στο notepad ένα αρχείο κι αντιγράψτε το script.
Σώστε αυτό το αρχείο με όνομα FineSharp.avsi - Aντιγράφετε τα mt_masktools-26.dll, RepairSSE3.dll, RepairSS3.dll
μαζί με το αρχείο FineSharp.avsi στον φάκελο με τα Plug-ins του Avisynth:
C:\Program Files (x86)\AviSynth 2.5\plugins - Aνοίγετε τον ffdshow και γράφετε στο κουτάκι του avisynth το εξής script:
Code:setmemorymax(64) SetMTMode(2) ffdshow_source() FineSharp() SetMTMode(1) GetMTMode(false) > 0 ? distributor() : last
Τις ρυθμίσεις στον ffdshow τις έχω έτσι:
Input colorspaces:[x]YV12 [ ]YUY2 [ ]RGB24 [ ]RGB32
[x]Buffer back/ahead: [0] [6]
Φυσικά αναλόγως το setup και τα γούστα μπορείτε να παίξετε μέ το SetMemoryMax (μέχρι
και 512 ή και 1024) και το SetMTMode (πχ 3 ή (3,4))
όπως και το buffer back/ahead μέχρι [0] [15].
εκτός του ffdshow , δείτε στα αντίστοιχα νήματα των
players πως μπορείτε να βάλετε το ffdshow raw filter
Παραδείγματα με Pattern σε σχέση με άλλους αλγόριθμους sharpening
Crop 1:1 (χωρίς scaling):
Ενδεικτικά παραδείγματα από κανονικό αρχείο 1080p:
Οι εικόνες είναι στιγμιότυπα από την ταινία της RedBull - Αrt Of Flight
Για μένα ένα από τα καλύτερα μπλε δισκάκια που έχουμε δει.
Στα patterns σίγουρα φαίνεται περισσότερο η διαφορά,
αλλά και στις 2 πρώτες φωτογραφίες το αποτέλεσμα είναι πολύ καλό
ειδικά αν λάβουμε υπόψιν το ελάχιστο ringing.
Καλύτερα να κλικάρετε πάνω στις φωτογραφίες
για να τις δείτε στο κανονικό τους μέγεθος.
Last edited: