Search
Search titles only
By:
Search titles only
By:
Home
Forums
New posts
Search forums
What's new
New posts
Latest activity
Members
Current visitors
Κανονισμός Λειτουργίας
Σωματείο AVClub
Log in
Register
Search
Search titles only
By:
Search titles only
By:
New posts
Search forums
Menu
Install the app
Install
Reply to thread
Home
Forums
Home Theater
Home Theater PC
HTPC Software
FineSharp() by Didee (sharpening)
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="Portioli" data-source="post: 1056666504" data-attributes="member: 3452"><p>Τελευταία στην κατηγορία των προβολέων γίνεται αρκετή συζήτηση για την όξυνση της εικόνας.</p><p> Ας δούμε τι θα μπορούσαμε να κάνουμε κι εμείς εντελώς ανέξοδα με την χρήση του avisynth.</p><p></p><p></p><p>To συγκριμένο σκριπτάκι που θα χρησιμοποιήσω εδώ είναι ενός χρήστη του doom9 του Didee. </p><p>Eίναι πολύ «αυστηρό» οπότε προϋποθέτει η πηγή του video να είναι πολύ καλή.</p><p>Αν έχετε πολύ SD υλικό ή πολύ συμπιεσμένα BD rips, WEB-DL κτλ καλύτερα να μην ασχοληθείτε.</p><p>Αφορά κυρίως Full BluRay 1080p23/24 ή πολύ καλά δικά σας rips των 720p.</p><p>Σε πόρους επίσης είναι πολύ απαιτητικό, πιστεύω θα ταλαιπωρήσει οποιαδήποτε CPU.</p><p></p><p></p><p><strong><u>FineSharp By Didee</u></strong>:</p><p></p><p></p><p>[code]</p><p># Small and relatively fast realtime-sharpening function, </p><p># for 1080p, or after scaling 720p -> 1080p during playback (to make 720p look more like being 1080p)</p><p># It's a generic sharpener. Only for good quality sources! </p><p># (If the source is crap, FineSharp will happily sharpen the crap.) ;)</p><p># Noise/grain will be enhanced, too. The method is GENERIC.</p><p>#</p><p># Modus operandi: A basic nonlinear sharpening method is performed, then the *blurred* sharp-difference gets subtracted again. </p><p>#</p><p># - Didee</p><p></p><p></p><p></p><p></p><p>function FineSharp(clip c, int "mode", float "sstr", float "cstr", float "xstr", float "lstr", float "pstr", float "ldmp")</p><p>{</p><p> </p><p>mode = default(mode, 1 ) # 1 to 3, weakest to strongest. When negative -1 to -3, a broader kernel for equalisation is used.</p><p>sstr = default(sstr, 2.0 ) # strength of sharpening, 0.0 up to ??</p><p> </p><p>_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)</p><p>_cstr = (mode>0) ? _cstr : pow(_cstr,1./1.25)</p><p></p><p></p><p></p><p></p><p>cstr = default(cstr, _cstr) # strength of equalisation, 0.0 to ? 2.0 ? (recomm. 0.5 to 1.25, default AUTO)</p><p>xstr = default(xstr, 0.19 ) # strength of XSharpen-style final sharpening, 0.0 to 1.0 (but, better don't go beyond 0.249 ...)</p><p></p><p></p><p></p><p></p><p> # Viscera parameters</p><p>lstr = default(lstr, 1.49 ) # modifier for non-linear sharpening</p><p>pstr = default(pstr, 1.272) # exponent for non-linear sharpening</p><p>ldmp = default(ldmp, sstr+0.1) # "low damp", to not overenhance very small differences (noise coming out of flat areas)</p><p></p><p></p><p></p><p></p><p>str1 = sstr</p><p>str2 = cstr</p><p>SSTR = string(sstr)</p><p>CSTR = string(cstr)</p><p>LSTR = string(lstr)</p><p>PSTR = string(pstr)</p><p>LDMP = string(ldmp)</p><p>rg=mode>0?11:20</p><p> </p><p>b = (abs(mode)==1) ? c.removegrain(11,-1).removegrain(4,-1)</p><p>\ : (abs(mode)==2) ? c.removegrain(4,-1).removegrain(11,-1)</p><p>\ : (abs(mode)==3) ? c.removegrain(4,-1).removegrain(11,-1).removegrain(4,-1) : c</p><p> </p><p>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 +")</p><p> </p><p>shrp = (str1<0.01) ? c : c.mt_adddiff(shrpD,U=2,V=2)</p><p></p><p></p><p></p><p></p><p>shrp = (str2<0.01) ? shrp : shrp.mt_makediff(shrpD.mt_lut("x 128 - "+CSTR+" * 128 +").removegrain(rg,-1),U=2,V=2)</p><p></p><p></p><p></p><p></p><p>shrp = (xstr<0.01) ? shrp</p><p>\ : 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)</p><p></p><p></p><p></p><p></p><p>return(shrp)</p><p>}</p><p>[/code]</p><p></p><p></p><p></p><p></p><p>Πηγή: <a href="http://avisynth.org/mediawiki/FineSharp" target="_blank">Eπίσημη Σελίδα|Avisynth</a> και το <a href="http://forum.doom9.org/showthread.php?p=1569035#post1569035" target="_blank">FineSharp()@doom9</a></p><p></p><p></p><p></p><p></p><p>Το μόνο που χρειάζεται είναι άλλα δυο plugins:</p><ul> <li data-xf-list-type="ul">RemoveGrain</li> <li data-xf-list-type="ul">MT-Masktools</li> <li data-xf-list-type="ul">Repair</li> </ul><p>Αν δεν έχετε χρησιμοποιήσει ποτέ πριν το avisynth και σας φαίνονται όλα αυτά κινέζικα. </p><p>Ας τα πάρουμε όλα τα βήματα από την αρχή: <ol> <li data-xf-list-type="ol">Κατεβάστε την τελευταία έκδοση <a href="http://avisynth.org/mediawiki/Main_Page#Official_builds" target="_blank"><strong>Avisynth</strong></a>.</li> <li data-xf-list-type="ol">Κατεβάστε το <a href="http://www.mediafire.com/file/4dm34kc7tug7rrk/avisynth.7z" target="_blank"><strong>avisynth.dll</strong></a> και βάλτε το στον φάκελο<br /> <strong>C:\Windows\System32</strong> για 32-bit λειτουργικό και <strong>C:\Windows\SysWOW64</strong> για λειτουργικό x64</li> <li data-xf-list-type="ol">Kατεβάζετε τα plug-ins <strong><a href="http://avisynth.org/mediawiki/MaskTools2" target="_blank">MaskTools2</a></strong> & <strong><a href="http://avisynth.org/mediawiki/Removegrain" target="_blank">Removegrain</a></strong></li> <li data-xf-list-type="ol">Φτιάξτε στο notepad ένα αρχείο κι αντιγράψτε το script.<br /> Σώστε αυτό το αρχείο με όνομα <strong>FineSharp.avsi</strong></li> <li data-xf-list-type="ol">Aντιγράφετε τα <strong>mt_masktools-26.dll</strong>, <strong>RepairSSE3.dll</strong>, <strong>RepairSS3.dll</strong><br /> μαζί με το αρχείο <strong>FineSharp.avsi</strong> στον φάκελο με τα Plug-ins του Avisynth:<br /> <strong>C:\Program Files (x86)\AviSynth 2.5\plugins</strong></li> <li data-xf-list-type="ol">Aνοίγετε τον ffdshow και γράφετε στο κουτάκι του avisynth το εξής script:<br /> <br /> <br /> <br /> <br /> [code]<br /> setmemorymax(64) <br /> SetMTMode(2)<br /> ffdshow_source()<br /> FineSharp()<br /> SetMTMode(1)<br /> GetMTMode(false) > 0 ? distributor() : last<br /> [/code]<br /> <br /> <br /> <br /> <br /> Τις ρυθμίσεις στον ffdshow τις έχω έτσι:<br /> Input colorspaces:[<strong><span style="color: #0000CD">x</span></strong>]YV12 [ ]YUY2 [ ]RGB24 [ ]RGB32<br /> [<strong><span style="color: #0000CD">x</span></strong>]Buffer back/ahead: [0] [6]<br /> <br /> <br /> Φυσικά αναλόγως το setup και τα γούστα μπορείτε να παίξετε μέ το SetMemoryMax (μέχρι <br /> και 512 ή και 1024) και το <a href="http://avisynth.org/mediawiki/MT" target="_blank">SetMTMode</a> (πχ 3 ή (3,4))<br /> όπως και το buffer back/ahead μέχρι [0] [15].<br /> <br /> <br /> <br /> <br /> [spoiler]<br /> <img src="http://i.imgur.com/8nJhl.jpg" alt="" class="fr-fic fr-dii fr-draggable " style="" /><br /> [/spoiler]</li> </ol><p>Aν θέλετε να παίξετε με κάποιον άλλο video decoder</p><p>εκτός του ffdshow , δείτε στα αντίστοιχα νήματα των</p><p>players πως μπορείτε να βάλετε το ffdshow raw filter</p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p>Παραδείγματα με Pattern σε σχέση με άλλους αλγόριθμους sharpening</p><p>Crop 1:1 (χωρίς scaling):</p><p></p><p></p><table style='width: 100%'><tr><td><em>Χωρίς Sharpening:</em></td></tr><tr><td>[ATTACH]86955[/ATTACH]</td></tr><tr><td><em>LimitedSharpenFaster:</em></td></tr><tr><td>[ATTACH]86956[/ATTACH]</td></tr><tr><td><em>LSFMod:</em></td></tr><tr><td>[ATTACH]86957[/ATTACH]</td></tr><tr><td><em>FineSharp:</em></td></tr><tr><td>[ATTACH]86958[/ATTACH]</td></tr></table><p></p><p></p><p></p><p></p><p></p><p>Ενδεικτικά παραδείγματα από κανονικό αρχείο 1080p:</p><p></p><table style='width: 100%'><tr><td><em>Xωρίς Sharpening</em></td><td><em>FineSharp()</em></td></tr><tr><td>[ATTACH]86960[/ATTACH]</td><td>[ATTACH]86959[/ATTACH]</td></tr><tr><td>[ATTACH]86961[/ATTACH]</td><td>[ATTACH]86962[/ATTACH]</td></tr><tr><td>[ATTACH]86963[/ATTACH]</td><td>[ATTACH]86964[/ATTACH]</td></tr></table><p></p><p></p><p></p><p>Οι εικόνες είναι στιγμιότυπα από την ταινία της RedBull - <a href="http://artofflightmovie.com/" target="_blank">Αrt Of Flight</a> </p><p>Για μένα ένα από τα καλύτερα μπλε δισκάκια που έχουμε δει.</p><p></p><p>Στα patterns σίγουρα φαίνεται περισσότερο η διαφορά,</p><p>αλλά και στις 2 πρώτες φωτογραφίες το αποτέλεσμα είναι πολύ καλό</p><p>ειδικά αν λάβουμε υπόψιν το ελάχιστο ringing.</p><p>Καλύτερα να κλικάρετε πάνω στις φωτογραφίες</p><p>για να τις δείτε στο κανονικό τους μέγεθος.</p></blockquote><p></p>
[QUOTE="Portioli, post: 1056666504, member: 3452"] Τελευταία στην κατηγορία των προβολέων γίνεται αρκετή συζήτηση για την όξυνση της εικόνας. Ας δούμε τι θα μπορούσαμε να κάνουμε κι εμείς εντελώς ανέξοδα με την χρήση του avisynth. To συγκριμένο σκριπτάκι που θα χρησιμοποιήσω εδώ είναι ενός χρήστη του doom9 του Didee. Eίναι πολύ «αυστηρό» οπότε προϋποθέτει η πηγή του video να είναι πολύ καλή. Αν έχετε πολύ SD υλικό ή πολύ συμπιεσμένα BD rips, WEB-DL κτλ καλύτερα να μην ασχοληθείτε. Αφορά κυρίως Full BluRay 1080p23/24 ή πολύ καλά δικά σας rips των 720p. Σε πόρους επίσης είναι πολύ απαιτητικό, πιστεύω θα ταλαιπωρήσει οποιαδήποτε CPU. [B][U]FineSharp By Didee[/U][/B]: [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) } [/code] Πηγή: [URL="http://avisynth.org/mediawiki/FineSharp"]Eπίσημη Σελίδα|Avisynth[/URL] και το [URL="http://forum.doom9.org/showthread.php?p=1569035#post1569035"]FineSharp()@doom9[/URL] Το μόνο που χρειάζεται είναι άλλα δυο plugins: [LIST] [*]RemoveGrain [*]MT-Masktools [*]Repair [/LIST]Αν δεν έχετε χρησιμοποιήσει ποτέ πριν το avisynth και σας φαίνονται όλα αυτά κινέζικα. Ας τα πάρουμε όλα τα βήματα από την αρχή:[LIST=1] [*]Κατεβάστε την τελευταία έκδοση [URL="http://avisynth.org/mediawiki/Main_Page#Official_builds"][B]Avisynth[/B][/URL]. [*]Κατεβάστε το [URL="http://www.mediafire.com/file/4dm34kc7tug7rrk/avisynth.7z"][B]avisynth.dll[/B][/URL] και βάλτε το στον φάκελο [B]C:\Windows\System32[/B] για 32-bit λειτουργικό και [B]C:\Windows\SysWOW64[/B] για λειτουργικό x64 [*]Kατεβάζετε τα plug-ins [B][URL="http://avisynth.org/mediawiki/MaskTools2"]MaskTools2[/URL][/B] & [B][URL="http://avisynth.org/mediawiki/Removegrain"]Removegrain[/URL][/B] [*]Φτιάξτε στο notepad ένα αρχείο κι αντιγράψτε το script. Σώστε αυτό το αρχείο με όνομα [B]FineSharp.avsi[/B] [*]Aντιγράφετε τα [B]mt_masktools-26.dll[/B], [B]RepairSSE3.dll[/B], [B]RepairSS3.dll[/B] μαζί με το αρχείο [B]FineSharp.avsi[/B] στον φάκελο με τα Plug-ins του Avisynth: [B]C:\Program Files (x86)\AviSynth 2.5\plugins[/B] [*]Aνοίγετε τον ffdshow και γράφετε στο κουτάκι του avisynth το εξής script: [code] setmemorymax(64) SetMTMode(2) ffdshow_source() FineSharp() SetMTMode(1) GetMTMode(false) > 0 ? distributor() : last [/code] Τις ρυθμίσεις στον ffdshow τις έχω έτσι: Input colorspaces:[[B][COLOR=#0000CD]x[/COLOR][/B]]YV12 [ ]YUY2 [ ]RGB24 [ ]RGB32 [[B][COLOR=#0000CD]x[/COLOR][/B]]Buffer back/ahead: [0] [6] Φυσικά αναλόγως το setup και τα γούστα μπορείτε να παίξετε μέ το SetMemoryMax (μέχρι και 512 ή και 1024) και το [URL="http://avisynth.org/mediawiki/MT"]SetMTMode[/URL] (πχ 3 ή (3,4)) όπως και το buffer back/ahead μέχρι [0] [15]. [spoiler] [IMG]http://i.imgur.com/8nJhl.jpg[/IMG] [/spoiler] [/LIST]Aν θέλετε να παίξετε με κάποιον άλλο video decoder εκτός του ffdshow , δείτε στα αντίστοιχα νήματα των players πως μπορείτε να βάλετε το ffdshow raw filter Παραδείγματα με Pattern σε σχέση με άλλους αλγόριθμους sharpening Crop 1:1 (χωρίς scaling): [TABLE="class: outer_border, width: 1024"] [TR] [TD][I]Χωρίς Sharpening:[/I][/TD] [/TR] [TR] [TD][ATTACH=CONFIG]86955._xfImport[/ATTACH][/TD] [/TR] [TR] [TD][I]LimitedSharpenFaster:[/I][/TD] [/TR] [TR] [TD][ATTACH=CONFIG]86956._xfImport[/ATTACH][/TD] [/TR] [TR] [TD][I]LSFMod:[/I][/TD] [/TR] [TR] [TD][ATTACH=CONFIG]86957._xfImport[/ATTACH][/TD] [/TR] [TR] [TD][I]FineSharp:[/I][/TD] [/TR] [TR] [TD][ATTACH=CONFIG]86958._xfImport[/ATTACH][/TD] [/TR] [/TABLE] Ενδεικτικά παραδείγματα από κανονικό αρχείο 1080p: [TABLE="width: 500"] [TR] [TD][I]Xωρίς Sharpening[/I][/TD] [TD][I]FineSharp()[/I][/TD] [/TR] [TR] [TD][ATTACH=CONFIG]86960._xfImport[/ATTACH][/TD] [TD][ATTACH=CONFIG]86959._xfImport[/ATTACH][/TD] [/TR] [TR] [TD][ATTACH=CONFIG]86961._xfImport[/ATTACH][/TD] [TD][ATTACH=CONFIG]86962._xfImport[/ATTACH][/TD] [/TR] [TR] [TD][ATTACH=CONFIG]86963._xfImport[/ATTACH][/TD] [TD][ATTACH=CONFIG]86964._xfImport[/ATTACH][/TD] [/TR] [/TABLE] Οι εικόνες είναι στιγμιότυπα από την ταινία της RedBull - [URL="http://artofflightmovie.com/"]Αrt Of Flight[/URL] Για μένα ένα από τα καλύτερα μπλε δισκάκια που έχουμε δει. Στα patterns σίγουρα φαίνεται περισσότερο η διαφορά, αλλά και στις 2 πρώτες φωτογραφίες το αποτέλεσμα είναι πολύ καλό ειδικά αν λάβουμε υπόψιν το ελάχιστο ringing. Καλύτερα να κλικάρετε πάνω στις φωτογραφίες για να τις δείτε στο κανονικό τους μέγεθος. [/QUOTE]
Verification
Post reply
Home
Forums
Home Theater
Home Theater PC
HTPC Software
FineSharp() by Didee (sharpening)
Top
Bottom
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…