tmjuju Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Διαφωνώ με το όρο 'απλό' - offset, καθώς και τον 3D ;-) Αντιλαμβάνομαι απόλυτα το τι λες παραπάνω - καθώς και τους παιδαριώδεις απλούς αλγόριθμους για στερεοσκοπικό. Όταν λέω ας μελετήσουμε τους αλγόριθμους εννοώ τους 'εξελιγμένους' αυτούς που χρησιμοποιεί η nV το pDVD etc. Αν δουλεύουν με κάτι το τόσο απλό όσο ένα fixed offset, πραγματικά τα προβλήματα που δημιουργούν είναι περισσότερα από όσα λες παραπάνω.
chiderboy Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Εξακολουθώ να μην καταλαβαίνω τι σόι 3D θα είναι αυτό Σε εικόνα που δεν είναι 3D θα μπορούσαν να εφαρμοσθούν τεχνικές για ανάκτηση μέρους τη πληροφορίας του βάθους αλλά εσύ δε μιλάς για κάτι τέτοιο. Θα μπορούσε πχ να φτιαχτεί ένας αλγόρυθμος που να μαντεύει χονδρικά και με ελάχιστη ακρίβεια το τι είναι μακρυά και τι κοντά με βάση το μέγεθος, τη θέση, το χρώμα, την φωτεινότητα, την κίνηση και άλλων χαρακτηριστηκών ενός συνόλου pixel τα οποία θα μπορούσε με τα ίδια σχεδόν κριτήρια να ομαδοποιήσει στο πολύ περίπου αλλά δεν περιμένω για το PowerDVD να έφτιαξαν κάτι τέτοιο
FarCry Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Διαφωνώ με το όρο 'απλό' - offset, καθώς και τον 3D ;-) Αντιλαμβάνομαι απόλυτα το τι λες παραπάνω - καθώς και τους παιδαριώδεις απλούς αλγόριθμους για στερεοσκοπικό. Όταν λέω ας μελετήσουμε τους αλγόριθμους εννοώ τους 'εξελιγμένους' αυτούς που χρησιμοποιεί η nV το pDVD etc. Αν δουλεύουν με κάτι το τόσο απλό όσο ένα fixed offset, πραγματικά τα προβλήματα που δημιουργούν είναι περισσότερα από όσα λες παραπάνω. ρε συ εδω βαζουν χρωμα σε ασπρομαυρες ταινιες μια χαρα βαζουν και τριτη διασταση....μη σου πω και τεταρτη
john2gr Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 http://3dvision-blog.com/2d-to-3d-realtime-video-conversion-script-for-avisynth-v0-3/ Η Nvidia δεν έχει αλγόριθμο για τις ταινίες. Όταν μίλησα για το 3D Vision, εννοούσα τα διάφορα scripts που υπάρχουν όπως το παραπάνω. Καλό διάβασμα στον κώδικα (και θα καταλάβεις όλα όσα σου περιέγραψα, θα δεις δε ότι μιλάμε για απλό offset και καθορίζεται στην αρχή ο βαθμός του βάθους) Το PowerDVD λογικά θα χρησιμοποιεί παρόμοιο αλγόριθμο. Καλό είναι δε, πέρα από τις πεποιθήσεις του καθενός, να το δείτε πρώτα in-action. Γιατί μιλάτε για προβλήματα και τραγικά αποτελέσματα, χωρίς καν να τα έχετε δει. Σε εικόνα που δεν είναι 3D θα μπορούσαν να εφαρμοσθούν τεχνικές για ανάκτηση μέρους τη πληροφορίας του βάθους αλλά εσύ δε μιλάς για κάτι τέτοιο. Μια εικόνα διαθέτει πληροφορίες RGB για κάθε pixel (και συντεταγμένες Χ-Υ για την θέση του κάθε pixel). Δεν υπάρχει πουθενά αποθηκευμένη συντεταγμένη για Ζ, οπότε κατευθείαν ακυρώνεται το πόσο depth πρέπει να έχει το pixel που είναι παραπέρα ώστε να είναι 'ρεαλιστικό' το τελικό 3D image του. Google it (μην μπερδέψεις το color system 'XYZ' με τους άξονες x-y-z .
tmjuju Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 ρε συ εδω βαζουν χρωμα σε ασπρομαυρες ταινιες μια χαρα βαζουν και τριτη διασταση....μη σου πω και τεταρτη Τελείως διαφορετικό πρόβλημα. ---------- Προσθήκη στις 18:20 ---------- Προηγούμενο μήνυμα στις 18:18 ---------- http://3dvision-blog.com/2d-to-3d-realtime-video-conversion-script-for-avisynth-v0-3/ Η Nvidia δεν έχει αλγόριθμο για τις ταινίες. Όταν μίλησα για το 3D Vision, εννοούσα τα διάφορα scripts που υπάρχουν όπως το παραπάνω. Καλό διάβασμα στον κώδικα (και θα καταλάβεις όλα όσα σου περιέγραψα, θα δεις δε ότι μιλάμε για απλό offset και καθορίζεται στην αρχή ο βαθμός του βάθους) PS: Το PowerDVD λογικά θα χρησιμοποιεί παρόμοιο αλγόριθμο. Καλό είναι δε, πέρα από τις πεποιθήσεις του καθενός, να το δείτε πρώτα in-action. Γιατί μιλάτε για προβλήματα και τραγικά αποτελέσματα, χωρίς καν να τα έχετε δει. Ευχαριστώ για το link. Το έγραψα παραπάνω ότι ναι θα χρειαστώ ένα demo - για να έχω καλύτερη άποψη.
FarCry Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Τελείως διαφορετικό πρόβλημα. ε οχι ακριβως. διαβαθμισεις του greyscale στη μια, διαβαθμισεις βαθους στη αλλη. υπαρχει μια αναλογια αμα το δεις με λιγο abstraction
tmjuju Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Εξακολουθώ να μην καταλαβαίνω τι σόι 3D θα είναι αυτό Σε εικόνα που δεν είναι 3D θα μπορούσαν να εφαρμοσθούν τεχνικές για ανάκτηση μέρους τη πληροφορίας του βάθους αλλά εσύ δε μιλάς για κάτι τέτοιο. Θα μπορούσε πχ να φτιαχτεί ένας αλγόρυθμος που να μαντεύει χονδρικά και με ελάχιστη ακρίβεια το τι είναι μακρυά και τι κοντά με βάση το μέγεθος, τη θέση, το χρώμα, την φωτεινότητα, την κίνηση και άλλων χαρακτηριστηκών ενός συνόλου pixel τα οποία θα μπορούσε με τα ίδια σχεδόν κριτήρια να ομαδοποιήσει στο πολύ περίπου αλλά δεν περιμένω για το PowerDVD να έφτιαξαν κάτι τέτοιο Ακριβώς υπάρχουν πολλοί αλγόριθμοι, και μάλιστα μπόλικα papers είδη από το '70 με διάφορες τεχνικές ανάκτησης βάθους (βάζω από το 70 καθώς τότε ασχοληθήκαν ενεργά αρκετοί με AI ρομποτική κ.ο.κ. και σχεδίασαν αλγόριθμους οι οποίοι να είναι και εύκολα υπολογίσιμοι σε computerized εφαρμογές). Κάθε μια με τα προβλήματα της - και καμία δεν υπόσχετε καλύτερη εικόνα από το original. Οι σχεδιαστές τους φυσικά και αντιλαμβάνονται τα όρια και τα προβλήματα των αλγορίθμων τους και θα βρείτε και papers που ασχολούνται τόσο ποσοτικά όσο και ποιοτικά με το αποτέλεσμα. ---------- Προσθήκη στις 18:29 ---------- Προηγούμενο μήνυμα στις 18:25 ---------- ε οχι ακριβως. διαβαθμισεις του greyscale στη μια, διαβαθμισεις βαθους στη αλλη. υπαρχει μια αναλογια αμα το δεις με λιγο abstraction Για αυτό ακριβώς το χρώμα το αποφασίζει άνθρωπος... κάπου είχα δεί κάτι καταπληκτικά video που έδειχναν πως χρωμάτισαν τα video τη NASA στο φεγγάρι καθώς και το 'χοντρό&λιγνό'. Αλλά ας επικεντρωθούμε στα στερεοσκοπικά για λίγο.
FarCry Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Για αυτό ακριβώς το χρώμα το αποφασίζει άνθρωπος... κάπου είχα δεί κάτι καταπληκτικά video που έδειχναν πως χρωμάτισαν τα video τη NASA στο φεγγάρι καθώς και το 'χοντρό&λιγνό'. Αλλά ας επικεντρωθούμε στα στερεοσκοπικά για λίγο. ε ναι το ξερω. ειναι επιπονη διαδικασια βεβαια να κατσεις για καθε frame και να υπολογιζεις το βαθος αντιστοιχα με το χρωμα. παντως το αποτελεσμα που θα παρεις θα ειναι παρομοιο that was my point...
chiderboy Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 ρε συ εδω βαζουν χρωμα σε ασπρομαυρες ταινιες μια χαρα βαζουν και τριτη διασταση....μη σου πω και τεταρτη Αυτό απορία το χω πώς το κάνουν. Παίζει να κάθονται να τα μπογιαντίζουν με το χέρι καρέ καρέ. Με τέτοιο τρόπο έυκολα κάνεις και 2D->3D:p Πάντως δε θεωρώ το 3D και κανά τρελό breakthrough. Ακόμα ένα εφέ είναι Το ανθρώπινο μυαλό δε χρειάζεται να του υποδείξει κανείς το βάθος, μιά χαρά το καταλαβαίνει κι απο μόνο του σε realtime με μηδαμινή προσπάθεια σε αντίθεση με οτιδήποτε τεχνητό Μια εικόνα διαθέτει πληροφορίες RGB για κάθε pixel (και συντεταγμένες Χ-Υ για την θέση του κάθε pixel). Δεν υπάρχει πουθενά αποθηκευμένη συντεταγμένη για Ζ, οπότε κατευθείαν ακυρώνεται το πόσο depth πρέπει να έχει το pixel που είναι παραπέρα ώστε να είναι 'ρεαλιστικό' το τελικό 3D image του. Google it (μην μπερδέψεις το color system 'XYZ' με τους άξονες x-y-z .Μια 3D εικόνα περιέχει το Z και αν δεν το περιέχει σαν ξεχωριστό κανάλι το περιέχει κωδικοποιημένο (η καλύτερα αποκωδικοποιημένο) σαν pixel offsets. Απο 3D εικόνα μπορεί να ανακτηθεί το z
tmjuju Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 http://3dvision-blog.com/2d-to-3d-realtime-video-conversion-script-for-avisynth-v0-3/ αυτό κανει ένα απλό crop&resize μονο Αυτό απορία το χω πώς το κάνουν. Παίζει να κάθονται να τα μπογιαντίζουν με το χέρι καρέ καρέ. Με τέτοιο τρόπο έυκολα κάνεις και 2D->3D:p Ναι με το χέρι το χρώμα, και απλά τους βοηθάει ένα 'κινούμενο magic wand tool' υπεραπλουστευμένα. (η καλύτερα αποκωδικοποιημένο) me likes
john2gr Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Μια 3D εικόνα περιέχει το Z και αν δεν το περιέχει σαν ξεχωριστό κανάλι το περιέχει κωδικοποιημένο (η καλύτερα αποκωδικοποιημένο) σαν pixel offsets ανάμεσα στα καρέ. Απο 3D εικόνα μπορεί να ανακτηθεί το z Σε εικόνα που δεν είναι 3D [/b']θα μπορούσαν να εφαρμοσθούν τεχνικές για ανάκτηση μέρους τη πληροφορίας του βάθους αλλά εσύ δε μιλάς για κάτι τέτοιο. Διάλεξε επιτέλους τι θέλεις Γενικά, η τεχνική που εφαρμόζεται στο 2D->3D conversion είναι το offset των εικόνων και το αποτέλεσμα είναι πάρα πολύ καλό. Θα πρέπει κοινώς να το δείτε πρώτα και μετά να πείτε αν σας άρεσε ή όχι (είναι παρόμοια φάση με τα παιχνίδια. Όλοι λένε ότι είναι πατάτα το 3D gaming... μέχρι να παίξουν το πρώτο τους ). Δεν μίλησε κανείς για πραγματικό 3D (κάτι τέτοιο μην περιμένετε να γίνει. Δηλαδή κοντά στον νου κι η γνώση). Εντούτοις, το εν λόγω conversion είναι πολύ καλύτερο από το 2D. Απλά δοκιμάστε το ντε! αυτό κανει ένα απλό crop&resize μονο Βρες 3D Vision κι αν βλέπεις βάθος με αυτό το script, μου αγοράζεις έναν DLP projector, deal; (γιατί προφανώς σου ξέφυγαν οι γραμμές του κώδικα για το depth... η πλάκα είναι πως έχει και comments για να βλέπετε την όλη διαδικασία του convert )
chiderboy Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Διάλεξε επιτέλους τι θέλεις Γιατί τι είπα;Στην περίπτωση του 2D σου λέω δεν έχεις πληροφορία για το βάθος και μπορούν να γίνουν υπολογισμοί και να ανακτήσεις μαντευοντας μέρος τις πληροφορίας για το βάθος με τεράστιες αποκλίσεις ενώ στην 3D εικόνα η πληροφορία για το βάθος υπάρχει ήδη στην εικόνα έτοιμη για να την δείς και με σχετικά απλούς υπολογισμούς ανακτάς και την καθαρή πληροφορία του βάθους με αρκετή ακρίβεια
tmjuju Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Βρες 3D Vision κι αν βλέπεις βάθος με αυτό το script, μου αγοράζεις έναν DLP projector, deal; (γιατί προφανώς σου ξέφυγαν οι γραμμές του κώδικα για το depth... η πλάκα είναι πως έχει και comments για να βλέπετε την όλη διαδικασία του convert ) Βασικά αυτό τον κώδικα κοίταξα (απο το link), και δε βλέπω να κάνει και πολλά παραπάνω: >## 2D to 3D Realtime Video Conversion Avisynth script v0.3b MultiThreading ## Made by Anton Belev at 3D Vision Blog ## http://www.3dvision-blog.com ## Additionally extended by Martin Haverland at audiomh.de for quality resize ## and different output modes including interlaced format for use in non-3d specific players e.g. windows media player. ## For this to work you need to have AviSynth with MT mod 0.7 installed!!! SetMTMode(2,0) ## Open the video file for conversion, change the video file name video2d = DirectShowSource("Avatar_Trailer_HD.avi") ## Increase video brightnes on dark videos, good for 3D Vision owners # video2d = video2d.Tweak(Bright=10) ## Convert to RGB32 to avoid the width restrictions video2d = ConvertToRGB32(video2d) ## Optional aspect ratio maintaining quality resize for 3d monitor target resolution. ## Very cpu intensive, may be for offline use only, e.g. in virtualdubmod. ## 2x 3.0ghz cpu may give you a framerate of 16fps while running the whole script in virtualdubmod including xvid compression in HDTV quality saving setting. ## Offers great quality in the result video for fullscreen playback in every .avs capable player later. ## Also reduces ghosting if the original file resolution is smaller than the target resolution. # videoW = width(video2d) # videoH = height(video2d) ## For 19" Zalman use 1280, for 22" Zalman Trimon it is 1680 etc. # hzTargetSize = 1280 # video2d = Lanczos4Resize(video2d, hzTargetsize, hzTargetsize * videoH / videoW) ## Commenting out the above resizing maintains realtime capability! ## Get video width/height and set the frame stretch factor ## Lower the value 100 to increase frame stretch, may introduce ghosting videoW = width(video2d) videoH = height(video2d) ResW = videoW + (videoW / 100) CropW = (ResW - videoW) / 2 ## Create variables for left and right frame with one frame difference ## This is the Plufrich-like simulation that creates illusion of depth from movement f1 = video2d f2 = DeleteFrame(video2d, 0) ## Stretch the right frame to further the depth effect f1 = LanczosResize(f1, ResW, videoH) f1 = Crop(f1, 0, 0, videoW, videoH) ## Stretch the left frame to further the depth effect f2 = LanczosResize(f2, ResW, videoH) f2 = Crop(f2, CropW, 0, videoW, videoH) ## Output the two video frames in a side-by-side / parallel format ## Use this as a default for playing back on 3D Vision (Side by Side L/R) StackHorizontal(f2, f1) ## Output the two video frames in a Above/Below format (like Sony?) # StackVertical(f2,f1) ## Output the two video frames in a page flipping format for shutter glasses etc. ## The Tweak as proposed by eslave is for brighter image, modify the value 30 # f1 = f1.ConvertToYV12.Tweak(Bright=30) # f2 = f2.ConvertToYV12.Tweak(Bright=30) # Interleave(f2,f1) ## Output the two video frames in anaglyph red-cyan as proposed by eslave # MergeRGB(f2.ShowRed, f1.ShowGreen, f1.ShowBlue) ## For reversed anaglyph i.e. cyan-red # MergeRGB(f1.ShowRed, f2.ShowGreen, f2.ShowBlue) ## Output the two video frames in anaglyph yellow-blue as proposed by eslave (untested) # f1 = f1.ConvertToYV12(matrix="PC.601").tweak(bright=12.5, sat=1.25, coring=false) # f1 = f1.ConvertToRGB32 # f1 = f1.Levels(0, 1.05, 255, 0, 255, coring=false) # MergeRGB(f2.ShowRed, f1.ShowGreen, f1.ShowBlue) ## Output the two video frames in anaglyph blue-Yellow as proposed by eslave (untested) # f2 = f2.ConvertToYV12(matrix="PC.601").tweak(bright=12.5, sat=1.25, coring=false) # f2 = f2.ConvertToRGB32 # f2 = f2.Levels(0, 1.05, 255, 0, 255, coring=false) # MergeRGB(f1.ShowRed, f2.ShowGreen, f2.ShowBlue) ## Output two video frames in Interlaced mode ## Ueed for Zalman Trimon, Acer Aspire 3D etc. # f1 = SeparateFields(f1) # f1 = SelectEven(f1) # f2 = SeparateFields(f2) # f2 = SelectOdd(f2) # interleave(f2,f1) # AssumeFieldBased() # weave() Όσο για την DeleteFrame http://avisynth.org/mediawiki/DeleteFrame δε βλέπω κάτι περισσότερο από αυτό. Τεσπα, πρώτη φορά διαβάζω avisynth script και κάτι μπορεί να μου διαφεύγει.
john2gr Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Γιατί τι είπα;Στην περίπτωση του 2D σου λέω δεν έχεις πληροφορία για το βάθος και μπορούν να γίνουν υπολογισμοί και να ανακτήσεις μαντευοντας μέρος τις πληροφορίας για το βάθος με τεράστιες αποκλίσεις ενώ στην 3D εικόνα η πληροφορία για το βάθος υπάρχει ήδη στην εικόνα έτοιμη για να την δείς και με σχετικά απλούς υπολογισμούς ανακτάς και την καθαρή πληροφορία του βάθους με αρκετή ακρίβεια Όπως ακριβώς το είπες, μαντεύοντας. Δεν είναι υπολογισμός αυτός ('μπακαλίστικος' υπολογισμός ναι, είναι). Άρα η 'μαντεψιά' ενός αλγόριθμου, ίσως εσένα σου φαίνεται λανθασμένη. Μπορεί ενός άλλου να είναι τέλεια για σένα. Και ξέρεις γιατί; Γιατί όταν δεις μια 2D εικόνα δεν ξέρεις την πραγματική απόστασή του Χ αντικειμένου από τον φακό (μπορεί να είχε γίνει με zoom-in το capture), οπότε μόνο υποθέσεις μπορείς να κάνεις και να κρατήσεις ότι αρέσει σε εσένα περισσότερο. Μπορεί να σου φέρουν δύο ταινίες, η μία που να είναι από αλγόριθμο και η άλλη από 3D κάμερα και να βγάλεις καλύτερη αυτήν από τον αλγόριθμο. Μα τόσα παραδείγματα υπάρχουν σε όλους τους τομείς (βλέπε από γεύση κρασιών ή κρεάτων (από εμπειρογνώμονες... ο Θεός να τους κάνει όταν δεν ξέρουν τι τρώνε και μαντεύουν πιο είναι καλύτερης ποιότητας βάση της γεύσης) μέχρι και χρωμάτων σε ταινίες). Και για να μην αναλωνόμαστε στην θεωρεία, δανειστείτε από φίλο σας ένα 3D Vision kit, δοκιμάστε το script και αν δεν σας αρέσει το βάθος που προσδίδει στις ταινίες, ΟΚ. Δεκτόν. Μην συγκρίνετε προσπάθειες όμως με παλιές που ήταν απογοητευτικές. Είναι σαν να συγκρίνει κάποιος το 3D Vision με τις 3D gaming λύσεις που είχαν κυκλοφορήσει πριν από 10 χρόνια και ήταν πατάτες PS: tmjuju, εγώ στο είπα εξαρχής ότι έχουμε να κάνουμε με offset images. Δες το ακριβώς από κάτω από το DeleteFrame. Και θα το ξαναπώ, πάρε από κάποιον γνωστό σου το 3D Vision και δοκίμασέ το ## Output the two video frames in a side-by-side / parallel format## Use this as a default for playing back on 3D Vision (Side by Side L/R)
tmjuju Δημοσ. 19 Μαρτίου 2010 Δημοσ. 19 Μαρτίου 2010 Η StackHorizontal(f2, f1) απλά παίρνει τα [f1] & [f2] και σου δίνει [f1f2] http://avisynth.org/mediawiki/StackHorizontal δεν είναι μέρος των όποιων υπολογισμών βάθους. (μη με βάλεις να ξαναπώ ότι ναι θα ήθελα να δώ) αλλά τελικά αυτό είναι όλο και όλο?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.