Title: [Πολυμέσα] Εργασία 2007-08 Post by: dim on December 10, 2007, 06:45:02 am Στο e-thmmy ανέβηκε η εκφώνηση της πρώτης (από τις 3) συνολικά ενότητες της φετινής εργασίας..
Ανοίγει λοιπόν αυτό το τόπικ για συζήτηση πάνω στη εργασία.. ============================================================ small tips 1η ενότητα => 2 βαθμούς max 2η ενότητα => 1 βαθμό max 3η ενότητα => 1 βαθμό max Κάθε ενότητα προϋποθέτει την υλοποίηση των προηγούμενων Η εργασία είναι προαιρετική Στοχεύει στην υλοποίηση ενός κωδικοποιητή/ αποκωδικοποιητή video κατά το open source πρότυπο Theora του Xiph.org foundation. Ομάδες μέχρι και 2 ατόμων Title: Re: Εργασία 2007-08 Post by: lars on December 14, 2007, 14:05:00 pm Να κάνω την πρώτη και βασικότερη για αρχή ερώτηση.. ποια είναι η προθεσμία για την παράδοση της 1ης ενότητας?
Title: Re: Εργασία 2007-08 Post by: Verminoz on December 14, 2007, 17:10:51 pm Απ'όσο έχω ξέρω δεν υφίσταται προς το παρών. Φοβάμαι ότι μας το ανακοινώσουν μία μέρα πριν την μέρα προθεσμίας :P
Title: Re: Εργασία 2007-08 Post by: bdragon on December 15, 2007, 15:45:38 pm Ας κάνω εγώ την πρώτη ερώτηση.Στην τρίτη κατα σειρα συνάρτηση-dctBlockCoeffs-είχε πει στο μάθημα οτι υπάρχει διαφορά στο scale ή κάτι τέτοιο και οτι πρεπει οι τιμές που παίρνω να είναι αποδεκτές απο το πρότυπο.Εννοεί να είναι integer?Γιατι κάτι τέτοιο κατάλαβα απο το πρότυπο.Αλλα επειδή δεν παίζω την Αγγλική στα δάκτυλα ας επιβεβαιώσει κάποιος ή το αντίθετο.
Υ.Γ.1-Επειδή το έιδα καλύτερα-δεν είναι μόνο μια στρογγυλοποίηση που πιθανώς θα προκύψει κατα την αντιστροφή της διαδικασίας αλλα και κάτι όσον αφορά την DC coeff. που έχει σαφή διαφορά τάξης μεγέθους απο τις AC συνιστώσες. Υ.Γ.2-Αν κατάλαβε κάποιος τι έιπα ας απαντήσει,γιατι εγώ δεν κατάλαβα. Title: Re: Εργασία 2007-08 Post by: KorkoLyk on December 15, 2007, 21:22:24 pm ;D ;D ;D
Θα απαντήσω μία από τις επόμενες μέρες, τώρα πρέπει να βγω. ;) Title: Re: Εργασία 2007-08 Post by: rhum on December 31, 2007, 10:03:21 am Αραχνιασε το topic...
Half-pixel motion vectors: επειδη δεν υπαρχει (με την καμια) περιπτωση να καταλαβει κανεις απο το specification πως λειτουργoυν τα half και quarter pixel motion vectors, παραθετω το παρακατω : Quote /*Here is a brief description of how Theora handles motion vectors: Motion vector components are specified to half-pixel accuracy in undecimated directions of each plane, and quarter-pixel accuracy in decimated directions. Integer parts are extracted by dividing (not shifting) by the appropriate amount, with truncation towards zero. These integer values are used to calculate the first offset. If either of the fractional parts are non-zero, then a second offset is computed. No third or fourth offsets are computed, even if both components have non-zero fractional parts. The second offset is computed by dividing (not shifting) by the appropriate amount, always truncating _away_ from zero.*/ There are always either one or two offsets computed. In the two-offset case, the two samples are averaged (with truncation towards 0 or -infinity... all sample values are positive so they're equivalent) to form the predictor. Some examples, all in 4:2:0 mode (decimation in both X and Y directions in the U and V planes): (-1,-1) in the Y plane produces two offsets: (0,0) and (-1,-1) (-2,-2) in the Y plane produces one offset: (-1,-1) (-1,-2) in the Y plane produces two offsets: (0,-1) and (-1,-1) (1,2) in the U plane produces two offsets: (0,0) and (1,1) (3,4) in the U plane produces two offsets: (0,1) and (1,1) (4,4) in the U plane produces one offset: (1,1) απο την mailing-list του Theora http://lists.xiph.org/pipermail/theora-dev/2004-March/000913.html Το ερωτημα ειναι αν πρεπει να το υλοποιησουμε, μιας και δεν αναφερθηκε ποτε στο μαθημα(νομιζω). Στον αποκωδικοποιητη ειναι σχετικα ευκολο να μπει, αλλα στον κωδικοποιητη μπλεκει αρκετα. Και με την ευκαιρια, με το δευτερο μερος της εργασιας τί γινεται; Νομιζα πως ηταν ετοιμο, αλλα ακομα δεν εχει ανεβει. Title: Re: Εργασία 2007-08 Post by: Verminoz on January 03, 2008, 19:13:37 pm Θέωλ να ρωτήσω κάτι επειδή δυστυχώς έχασα και αρκετά μαθήματα. Για την συνάρτηση Εκτίμησης Κίνησης τι αλγόριθμο πρέπει να χρησιμοποιήσουμε? Υπάρχουν πολλοί αλγόριθμοι αναζήτησης blocks για motion estimation. Ανέφερε στο μάθημα τι θα χρησιμοποιήσουμε? Το πρότυπο του Theora δεν το ξεκαθαρίζει...
Title: Re: Εργασία 2007-08 Post by: Turambar on January 03, 2008, 19:36:06 pm Δοκιμάστε αν λέει κάτι παραπάνω το MPG πρότυπο που κάναμε πρόπερσι...
Γενικότερα δεν πολυθυμάμαι πώς το είχαμε κάνει τότε αλλά θα κοιτάξω λίγο τα κυτάπια μου... Title: Re: Εργασία 2007-08 Post by: Kary on January 04, 2008, 20:19:07 pm Μια παρατήρηση. Νομίζω ότι τα tokens που υπάρχουν στην εκφώνηση τις εργασίας είναι λάθος κωδικοποιημένα. Στο πρώτο block (b1) σίγουρα χάνει την αρίθμηση του ti. Αυτό το είχαμε πεί και στην τάξη. Κάτι άλλο που πρόσεξα όμως είναι ότι όταν έχουμε ένα zero run τα extra bits είναι ο δυιαδικός αριθμός που αντιστοιχεί στον αριθμό των μηδενικών μείον ένα. Βλέπε σελίδα 88 του προτύπου. Τα αποτελέσματα που παίρνω είναι :
b1: "2" -> (0,11,b) "0 ... 0" -> (1,7,b111) "3" -> (9,13,b0) "0" -> (10,7,b000) "4" -> (11,14,b0) "-5" -> (12,15,b1) "0 1" -> (13,23,b0) Last Token -> (15,EOB) b2: "-3" -> (0,13,b1) "0 0 0 3" -> (1,31,b011) "4" -> (5,14,b0) "5" -> (6,15,b0) "0 ... 0" -> (7,8,b011101) "5" -> (37,15,b0) Last Token -> (38,EOB) b3: "7" -> (0,17,b00) "0 ...0" -> (1,8,b001001) "9" -> (11,18,b000) "420" -> (12,22,b0101011111) "0 ... 0 -1" -> (13,28,b110) Last Token -> (22,EOB) Ας επιβαιβεώσει κάποιος που την έκανε την συνάρτηση. Title: Re: Εργασία 2007-08 Post by: kekropas on January 05, 2008, 00:16:43 am Η εργασία πότε πρέπει να παραδοθεί τελικά?
Title: Re: Εργασία 2007-08 Post by: Azdul on January 08, 2008, 12:59:57 pm Τελείωσα την πρώτη συνάρτηση αλλά χρειάζομαι μία διευκρίνιση γιατί νομίζω πως κάτι δεν έκανα καλά.Τα frame.Y frame.Cr και frame.Cb είναι δομημένα σαν μία σειρά απο macroblock το καθένα,που τα έχουμε πάρει με coded order??Δηλαδή θα έιναι π.χ. frame.Y(1)=πίνακας(16Χ16)pixels?Και μπορεί το frame να έχει εκτος απο Υ Cr Cb και άλλα στοιχεία που εμείς θέλουμε?
Title: Re: Εργασία 2007-08 Post by: Verminoz on January 08, 2008, 15:02:44 pm Τα frame.Y, frame.Cb και frame.Cr δεν είναι macroblocks είναι πίνακες με όλα τα pixels και πιο συγκεκριμένα τις τιμές YCbCr κάθε pixel. Πχ. τo frame.Y(3,4) είναι η τιμή luma του pixel που βρίσκεται στην θέση (3,4). Το πως είναι διατεταγμένα προφανώς δεν πολυενδιαφέρει την συνάρτηση αυτή. Απλώς μετατρέπει χρώματα από και προς RGB οπότε χρησιμοποιείς pure raster order.
Title: Re: Εργασία 2007-08 Post by: bdragon on January 09, 2008, 13:50:31 pm Θέωλ να ρωτήσω κάτι επειδή δυστυχώς έχασα και αρκετά μαθήματα. Για την συνάρτηση Εκτίμησης Κίνησης τι αλγόριθμο πρέπει να χρησιμοποιήσουμε? Υπάρχουν πολλοί αλγόριθμοι αναζήτησης blocks για motion estimation. Ανέφερε στο μάθημα τι θα χρησιμοποιήσουμε? Το πρότυπο του Theora δεν το ξεκαθαρίζει... Μήπως υπάρχει κάτι νεότερο πάνω στην συνάρτηση εκτίμησης κίνησης που θα χρησιμοποιήσουμε? Title: Re: Εργασία 2007-08 Post by: manf on January 12, 2008, 00:17:39 am Ας επιβαιβεώσει κάποιος που την έκανε την συνάρτηση. Τα επιβεβαιώνω Kary. Σόρρυ για το λάθος. Θα διορθωθεί στην 3η έκδοση της εργασίας, που θα πάρετε τη Δευτέρα. Title: Re: Εργασία 2007-08 Post by: Verminoz on January 13, 2008, 19:40:12 pm Θέωλ να ρωτήσω κάτι επειδή δυστυχώς έχασα και αρκετά μαθήματα. Για την συνάρτηση Εκτίμησης Κίνησης τι αλγόριθμο πρέπει να χρησιμοποιήσουμε? Υπάρχουν πολλοί αλγόριθμοι αναζήτησης blocks για motion estimation. Ανέφερε στο μάθημα τι θα χρησιμοποιήσουμε? Το πρότυπο του Theora δεν το ξεκαθαρίζει... Μήπως υπάρχει κάτι νεότερο πάνω στην συνάρτηση εκτίμησης κίνησης που θα χρησιμοποιήσουμε? Βασικά είναι κάτι που τελικά αφήνεται αρκετά στην κρίση σου. Οι μόνοι περιορισμοί που έχεις είναι η περιοχή που θα ψάξεις που ορίζεται από τα mbSearchOffset, bSearchOffset και το errThres δηλαδή το μέγιστο όριο σφάλματος που είναι αποδεκτό ανάμεσα στα συγκρινόμενα macroblocks... Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 19, 2008, 20:44:28 pm Μια χαζή ερώτηση γιατί έφαγα κόλλημα τώρα: τι είναι το resFrame; Λέει ότι έχει τα components του σφάλματος πρόβλεψης. Δηλαδή;
Title: Re: Εργασία 2007-08 Post by: lars on January 20, 2008, 03:45:17 am Κάποιες ακόμη ερωτήσεις και αν προχωρήσουμε, ίσως και να βοηθήσουμε :)
Αφορούν στην περίπτωση της υποδειγματοληψίας και υπερδειγματοληψίας. 1) Στην υποδειγματοληψία,κρατάμε τις περιττές ή άρτιες σειρές/στήλες (ανάλογα με την περίπτωση)? 2) Έστω ότι έχουμε κρατήσει τις περιττές στήλες στην υποδειγματοληψία 4:2:2. Οι τιμές για κάθε pixel που παρεμβάλλουμε στην υπερδειγματοληψία πρέπει να είναι frame(i,j)=(frame(i,j-1)+frame(i,j+1))/2, σωστά? Αν ισχύει το προηγούμενο,τότε τι συμβαίνει στην περίπτωση της τελευταίας στήλης για άρτιο αριθμό στηλών? Δηλαδή, για 4x4 εικόνα, αν έχω τις τιμές για τη στήλη 1 και 3, τότε πώς θα υπολογιστούν οι τιμές για τη στήλη 4 στην υπερδειγματοληψία (δεν υπάρχει και 5η στήλη ώστε να προκύψει frame(i,4) = (frame(i,3)+frame(i,5)) / 2)? Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 20, 2008, 05:23:18 am @lars 1) καλό είναι να πάρεις το μέσο όρο και από τις 2 στήλες
2) στην υπερδειγματοληψία μπορείς να χρησιμοποιήσεις την έτοιμη συνάρτηση imresize από matlab για τη resFrame κανείς; Title: Re: Εργασία 2007-08 Post by: lars on January 20, 2008, 20:37:33 pm Ευχαριστώ για την απάντηση αν και δεν πολυκατάλαβα το (1).
Τώρα για το resFrame, αυτό που κατάλαβα εγώ είναι ότι είναι το εξής: Έστω ότι έχεις υπολογίσει για κάθε mblock (mblock1) το αντίστοιχο motion vector, το οποίο όμως έχει προκύψει από ένα αντίστοιχο mblock στη γύρω περιοχή (mblock2). Τότε στις θέσεις των στοιχείων του resFrame που αντιστοιχούν στο συγκεκριμένο mblock1 θα έχεις τις διαφορές των τιμών των στοιχείων mblock1(i,j)-mblock2(i,j). Αυτό είναι στην ουσία και το σφάλμα πρόβλεψης. Αν δεν είναι έτσι, ας με διορθώσει κάποιος. Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 20, 2008, 21:54:30 pm @lars χμμμ αυτό που λες πρέπει να είναι μάλλον! thanx :)
Στο 1) εννοώ ότι όταν πας να κάνεις subsampling για 4:2:2 , αντί να πάρεις μόνο τις άρτιες ή τις περιττές στήλες (αφού υποδειγματολυπτούμε κατά μήκος του οριζόντιου άξονα), πάρε το μέσο όρο της 1ης με τη δεύτερη, της τρίτης με την τέταρτη κλπ περισσότερα για το θέμα βρήκα εδώ: www.poynton.com/PDFs/Merging_RGB_and_422.pdf :D εξηγεί και γιατί το Y βρίσκεται στην περιοχή 16-235 και όχι 0-255 Title: Re: Εργασία 2007-08 Post by: Azdul on January 21, 2008, 23:05:18 pm Θέλω να κάνω δύο ερωτήσεις.Μπορούμε να κανουμε δικές μας συναρτήσεις .m που να τις καλουν οι συναρτήσεις της εργασίας ή πρέπει ολόκληρη η υλοποίηση να γίνει μόνο μέσα στις συναρτήσεις που αναφέρονται στην εργασια?Δεν είμαι σίγουρος αλλά στο μάθημα νομίζω οτι αναφέρθηκε οτι όταν καταλήξουμε σε κάποιο motion vector πρέπει να συγκρίνουμε την ενέργεια του motion vector με την ενέργεια του MB για να αποφασίσουμε αν πρέπει να το κωδικοποιήσουμε κι αν δεν κάνω λάθος είπαμε για παράδειγμα μία εικόνα η οποία π.χ. αποτελειται κατα μεγάλα τμήματα από το ίδιο χρωμα.Αν όλα αυτά βγάζουν νόημα σε κάποιον μπορεί να μου τα εξηγήσει κι εμενα??
Title: Re: Εργασία 2007-08 Post by: Verminoz on January 21, 2008, 23:13:57 pm Θέλω να κάνω δύο ερωτήσεις.Μπορούμε να κανουμε δικές μας συναρτήσεις .m που να τις καλουν οι συναρτήσεις της εργασίας ή πρέπει ολόκληρη η υλοποίηση να γίνει μόνο μέσα στις συναρτήσεις που αναφέρονται στην εργασια?Δεν είμαι σίγουρος αλλά στο μάθημα νομίζω οτι αναφέρθηκε οτι όταν καταλήξουμε σε κάποιο motion vector πρέπει να συγκρίνουμε την ενέργεια του motion vector με την ενέργεια του MB για να αποφασίσουμε αν πρέπει να το κωδικοποιήσουμε κι αν δεν κάνω λάθος είπαμε για παράδειγμα μία εικόνα η οποία π.χ. αποτελειται κατα μεγάλα τμήματα από το ίδιο χρωμα.Αν όλα αυτά βγάζουν νόημα σε κάποιον μπορεί να μου τα εξηγήσει κι εμενα?? Μπορείς να προσθέσεις βοηθητικές συναρτήσεις ελεύθερα! Δεν υπάρχει πρόβλημα. Όσον αφορά το δεύτερο μάλλον τα έχεις μπλέξει. Συγκρίνεις τις ενέργειες των δύο macroblock για να δεις πόσο όμοια είναι και με βάση τη διαφορά αποφασίζεις αν αξίζει να το κωδικοποίησεις ή όχι. Title: Re: Εργασία 2007-08 Post by: Azdul on January 21, 2008, 23:44:19 pm Ευχαριστώ πολύ για την άμεση απάντηση σου.Αν και ήσουν πολύ κατατοπιστικός μάλλον κάτι μου έχει ξεφύγει...Πως συγκρίνουμε τις ενέργειες δύο macroblock??Εννοείς να βρίσκω το μέσο τετραγωνικό σφάλμα μεταξύ του ΜΒ του current frame και του MB στην ίδια θέση στο pFrame ή το gFrame και να μου βγάζει τιμή μικρότερη από το errThres?Ελπίζω όσα γράφω να βγάζουν νόημα γιατί θα αρχίσω να αμφιβάλλω για το τι έχω καταλάβει μετά απο τόσο καιρό!! ::)
Title: Re: Εργασία 2007-08 Post by: lars on January 22, 2008, 01:42:39 am Όπως τα λες είναι μόνο που νομίζω ότι υπολογίζεις απλά το άθροισμα των τετραγώνων και όχι το μέσο τετραγωνικό σφάλμα.
Μια ακόμη ερώτηση. Το κάθε superblock τελικά είναι 16x16 pixels, όπως αναφέρεται σε μία από τις συναρτήσεις ή 32x32 pixels, όπως μέσα στο πρότυπο? Το gFrame που ακριβώς το χρειαζόμαστε? Ουσιαστικά δεν είναι το pFrame για το πρώτο interframe (αν είναι όντως το πρώτο τέτοιο)? Title: Re: Εργασία 2007-08 Post by: Verminoz on January 22, 2008, 02:17:50 am Δεν ξέρω κατά πόσο συμφέρει ή όχι, πάντως και η συνάρτηση του μέσου τετραγωνικού σφάλματος χρησιμοποιείται γενικά σε αυτές τις εφαρμογές. Στην εκφώνηση πάντως λέει άθροισμα τετραγώνων και προφανώς μετά η διαφορά των αθροισμάτων πρέπει να είναι μικρότερη του errThres. Αν δεν είναι δεν συμφέρει να πάρουμε το συγκεκριμένο motion vector. Αν δεν βρεις ικανοποιητικό παρόμοιο του macroblock σου τότε κωδικοποιείς το ίδιο το macroblock (intra mode) αλλιώς κωδικοποιείς το καλύτερο motion vector.
To superblock περιέχει 2x2 macroblocks και κάθε macroblock περιέχει 2x2 blocks και κάθε block περιέχει 8x8 pixels. Συνεπώς το superblock έχει 32x32 pixels. Αυτό στην συνάρτηση μάλλον είναι macroblock που έχει 16x16. Το golden frame, αν έχω καταλάβει καλά, είναι το τελευταίο intra frame που έχουμε συναντήσει. Το pFrame είναι το previous frame δηλαδή το αμέσως προηγούμενο. Το previous frame χρησιμοποιείται για προφανείς λόγους και το golden frame δεν έχω καταλάβει γιατί ακριβώς. Υποθέτω πως επειδή διαθέτει ακέραια πληροφορία είναι ιδανικό για να κάνεις συγκρίσεις. Αυτά... :) Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 27, 2008, 19:35:06 pm Σχετικά με τα Coding modes: μπορούμε να κωδικοποιήσουμε 1 Macroblock σε intra mode, αν το frame στο οποίο ανήκει είναι inter fame?
Αν ένα macroblock είναι σε INTER_NOMV ή ΙNTER_GOLDEN_NOMV τότε δεν είναι coded? Δηλαδή θα θεωρήσουμε ότι είναι ίδιο με το αντίστοιχο macroblock του προηγούμενου frame;;; Title: Re: Εργασία 2007-08 Post by: Azdul on January 28, 2008, 13:56:53 pm Γνωρίζει καποιος να μου εξηγήσει τι ακριβώς είναι το resFrame??Επίσης είναι λογικό με πλήρη αναζήτηση να κάνει κανα 5λεπτο να ελέγξει όλα τα MB??
Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 28, 2008, 14:15:25 pm Επειδή δε βλέπω μεγάλη συμμετοχή στις ερωτήσεις μήπως να ρωτήσουμε το Μάκη; http://www.makisfacts.com/facts/popular
Γιατί όπως λένε: Ο Μάκης μπορεί να διαβάζει αρχεία video σε οποιοδήποτε format χωρίς να έχει τα codec, με το μάτι. Title: Re: Εργασία 2007-08 Post by: PDM on January 28, 2008, 15:12:39 pm Με κάθε επιφύλαξη απαντάω :
"Mπορούμε να κωδικοποιήσουμε 1 Macroblock σε intra mode, αν το frame στο οποίο ανήκει είναι inter fame?" Νομίζω πως μπορούμε . Η απόφαση για το mode κωδικοποίησης λαμβάνεται σε επίπεδο macroblock ασχετα από το frame. Όσο για τα INTER_NOMV και ΙNTER_GOLDEN_NOMV , ΟΧΙ δεν σημαίνει ότι ειναι uncoded. Περίπτωση να είναι uncoded έχουμε μόνο για blocks που έχουν προβλεφθεί από το previous frame και έχουν μηδενικά motion vectors,δηλαδή για INTER_NOMV . Uncoded θα είναι όταν το άθροισμα τετραγώνων των τιμών του σφάλματος πρόβλεψης του συγκεκριμένου macroblock είναι μικρότερο από το errThress. Έτσι αν το σφάλμα πρόβλεψης είναι πολύ μικρό δεν χρειάζομαι κωδικοποίηση, έχω σχεδόν ολόιδια, σχεδόν ακίνητη εικόνα σ'αυτό το macroblock. Αλλιώς γενικά στη resFrame αποθηκεύουμε τη διαφορά ανάμεσα στο current frame και το previous ή το golden frame ανάλογα με το mode κωδικοποίησης για το χώρο του κάθε macroblock. Title: Re: Εργασία 2007-08 Post by: Azdul on January 28, 2008, 15:51:28 pm Δηλαδή άμα έχουμε INTRA βάζουμε στο resFrame το MB όπως το παίρνουμε από το frame??Κι αν το motion vector είναι 0 βάζουμε μηδενικά???
Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 28, 2008, 17:16:24 pm @PDM thanx
@Azdul -Δηλαδή άμα έχουμε INTRA βάζουμε στο resFrame το MB όπως το παίρνουμε από το frame. Νομίζω ναι Δεν κατάλαβα τη 2η ερώτησή σου. Το intra δε χρησιμοποιεί MV Title: Re: Εργασία 2007-08 Post by: Azdul on January 28, 2008, 17:48:24 pm Sorry λάθος διατύπωση.Εννοώ τα INTER_NOMV & ΙNTER_GOLDEN_NOMV.Σε αυτές τις περιπτωσεις βάζω μηδενικά??
Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 28, 2008, 18:17:59 pm Νομίζω πως ναι! Το λέει στη σελίδα 75 του προτύπου κάτω κάτω
Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 28, 2008, 20:34:50 pm Για το άθροισμα τετραγώνων τιμών σφάλματος: από ποια τιμή και κάτω θεωρείτε ότι είναι καλή προσέγγιση του macroblock από ένα άλλο με motion vector? Διαφορετικά συμφέρει να κωδικοποιήσεις ως intra το MB και όχι σε σχέση με κάποιο από τα γειτονικά.
Title: Re: Εργασία 2007-08 Post by: PDM on January 28, 2008, 23:22:39 pm Για να δεις αν θα ειναι intra συγκρίνεις το άθροισμα τετραγώνων τιμών σφάλματος για το καλύτερο motion vector με την ενέργεια του macroblock [Δηλαδή με το άθροισμα τετραγώνων των τιμών των pixel του current frame που ανήκουν στο συγκεκριμένο macroblock].
Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 29, 2008, 00:04:55 am @PDM 'το άθροισμα τετραγώνων των τιμών των pixel του current frame' εννοείς του Y ε? Όχι Cb,Cr υποθέτω..
Αλλά και πάλι, με πιο κριτήριο θα συγκρίνω ενέργεια διαφοράς σφάλματος με ενέργεια ενός macroblock; Δεν τα έχω κατανοήσει μάλλον.. Title: Re: Εργασία 2007-08 Post by: PDM on January 29, 2008, 01:57:45 am Ναι το Υ εννοώ , νομίζω δηλαδή. Όσο για τη σύγκριση απλά συγκρίνεις τα δυο αθροίσματα . Θα ρωτήσω και άλλους αύριο για επιβεβαίωση
Title: Re: Εργασία 2007-08 Post by: Larry_Flynt on January 29, 2008, 02:05:21 am Κοινοποιήστε κανένα κώδικα ρε παιδιά!
Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 29, 2008, 14:19:16 pm @Larry_Flynt τι είναι; open source το project?? χαχα
@PDM απλά δεν καταλαβαίνω τι νόημα έχει να συγκρίνουμε την ενέργεια του ίδιου του macroblock.. Και πώς βγαίνει αυτή; Όσο πιο άσπρο είναι τόσο μεγαλύτερη βγαίνει; Επίσης στο resframe θέλει τη διαφορά Y,Cb,Cr ανάμεσα στο macroblock αυτού του frame και του frame από το οποίο κάνουμε την πρόβλεψη. Σωστά; Δηλαδή θα παίρνει και αρνητικές τιμές; Title: Re: Εργασία 2007-08 Post by: blue_electric on January 29, 2008, 16:47:21 pm Να ρωτήσω κάτι για την τελευταία συναρτηση του πρώτου μέρους της εργασίας,δηλαδή την vlc και ivlc. Τι ακριβώς θέλει να κάνουμε? Δεν εχω καταλάβει ακριβώς. Να πάρουμε τον πίνακα με τα tokens που φτιάξαμε για καθε frame στην προηγούμενη συνάρτηση και να τα κωδικοποιήσουμε σύμφωνα με τους Huffman tables, αλλά πώς ακριβώς?Εννοώ ότι μπερδεύτηκα λίγο με την παραπομπή που κάνει η εκφώνηση της άσκησης για raster και codec order και macroblocks και blocks. Πού χρησιμεύουν όλα αυτά στη συνάρτηση?Έχω μπερδευτεί!Αν μπορεί κάποιος, ας μου εξηγήσει τι πρέπει ουσιαστικά να υλοποιήσω!
Ευχαριστώ! :-\ Title: Re: Εργασία 2007-08 Post by: Petrakeas on January 29, 2008, 20:21:41 pm @PDM Νομίζω κατάλαβα το λόγο που πρέπει να συγκρίνουμε ενέργεια mb με ενέργεια σφάλματος
Ο πίνακας BCODED αναφέρεται σε blocks και πρέπει να είναι σε Coded order. Ο πίνακας MBMODES που περιέχει macroblocks σε τι διάταξη να είναι; Και ο πίνακας MVECTS που έχει blocks, πάλι σε Coded; **στη σελ76 λέει ότι όταν τα MV_LAST, MV_LAST2 αναφέρονται στα προηγούμενα blocks σε coded order, οπότε νομίζω ότι ο MBMODES πρέπει να έχει τα mb σε coded order (σελ9,10) Title: [Πολυμέσα] Εργασία 2007-08 Post by: dim on January 30, 2008, 20:50:35 pm περισσότερα για το θέμα βρήκα εδώ: www.poynton.com/PDFs/Merging_RGB_and_422.pdf :D εξηγεί και γιατί το Y βρίσκεται στην περιοχή 16-235 και όχι 0-255 Πολύ καλό το pdf Petrakea, thanx! Έχει πολλά και στη wikipedia, αλλά αυτό είναι υπεραναλυτικό.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on January 31, 2008, 00:19:40 am Ρε παιδιά, υποτίθεται ότι χρησιμοποιούμε έτοιμες συναρτήσεις του matlab?
Μόλις μου το είπε μία φίλη..και μάλλον τζάμπα έφαγα τη μέρα μου γιατί πήγα να τα κάνω όλα χειροκίνητα.. Σήμερα έπιασα την εργασία, οπότε αν ισχύει πείτε για να κινούμαι ανάλογα.. Αν ισχύει ρίχτε καμιά συνάρτηση.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Petrakeas on January 31, 2008, 01:10:53 am Ναι χρησιμοποιούμε κάποιες έτοιμες σε κάποια σημεία: πχ τη rgb2ycbcr() και τη ycbcr2rgb()
@dim πες μου ότι δεν πήγες να τη γράψεις εσύ αυτή τη συνάρτηση, σύμφωνα με το pdf!!! Επίσης, χρησιμοποίησε την imresize() για αλλαγή δειγματοληψίας και την imshow φυσικά για να προβάλεις τους πίνακες σε εικόνα και να ξέρεις τι κάνεις! Δε νομίζω να χρησιμοποίησα κάποια άλλη έτοιμη.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on January 31, 2008, 01:28:34 am Ναι, πήγα να τη γράψω, κι έφαγα όλη την ημέρα για να βρω τον κατάλληλο πίνακα, γιατί σε διάφορα sites έβρισκα αντικρουόμενα πράγματα..
Τέσπα, βρήκα μάλλον το σωστό πίνακα, που έχει για το Υ μόνο 5 διαφορές σε ολόκληρη την εικόνα σε σχέση με την rgb2ycbcr.. Δείχνω και τον πίνακα..με τόσο κόπο αυτό θα πρέπει να δώσω :p Πάντως η rgb2ycbcr πολύ γρήγορη, μπράβο Την απέρριψα στην αρχή, γιατί στο matlab λέει luminance για αυτή την εντολή, και όχι luma Να'ναι καλά η αγγελική που μου άνοιξε τα μάτια.. Νόμιζα τα ετοιματζίδικα πράγματα δεν πρέπει να τα ακουμπάμε :p =============================================== @ petrakeas thanx man! Άντε να πέσει και λίγη ανταλλαγή απόψεων και αλληλοβοήθεια.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Azdul on January 31, 2008, 01:35:56 am Γνωρίζει κάποιος με σιγουριά να πει τι παίζει με την ενέργεια του MB??Μέχρι στιγμής αν έχω καταλάβει καλά μία εικόνα που έχει MB με Y components πολύ μικρής τιμής έχει χαμηλή ενέργεια??
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on January 31, 2008, 01:43:46 am με τη χρήση των rgb2ycbcr και ycbcr2rgb, οι εικόνες είναι ίδιες, οκ,
ΑΛΛΑ αν αφαιρέσουμε τον τελικό από τον αρχικό πίνακα..δεν προκύπτει ακριβώς μηδενικός πίνακας.. Μας πειράζει?? οκ, λεπτομέρεια... προφανώς κάπου στην rgb2ycbcr κάνει round Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Petrakeas on January 31, 2008, 02:32:24 am @Azdul και εγώ αυτό κατάλαβα
@dim η μετατροπή rgb 2 ycbcr και το ανάποδο (τουλάχιστον στη συνάρτηση του matlab) δεν είναι lossless. Έχει να κάνει κυρίως με το ότι το Y είναι από 16-235 ενώ στο RGB από 0-255. Θα φανεί καλά η διαφορά αν το δοκιμάσετε στην παρακάτω εικόνα. Η διαβάθμιση από λευκό σε μαύρο θα χαλάσει (φαινόμενο banding) *κάτι που πρόσεξα. οι πίνακες που επιστρέφει η imread είναι για τύπους uint8, δηλαδή παίρνουν τιμές 0-255, οπότε πριν τους αφαιρέσεις ή κάνεις οποιαδήποτε πράξη μετέτρεψε τους σε άλλο τύπο Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 08, 2008, 01:42:09 am Εάν δεν το είδατε, ανέβηκε νέα εκφώνηση, και οδηγία για την vlc...
ΕΡΩΤΗΣΗ ΤΩΡΑ.... Στη σελίδα 3 κάτω από τον τύπο που δίνει τους blockCOEFFS λέει.. Οι τιμές που βρίσκονται εκτός του διαστήματος [-580,580] αποκόπτονται.. Αυτό τι σημαίνει? το -600 ας πούμε γίνεται -580 και το 600 γίνεται 580??? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on February 08, 2008, 18:30:11 pm Εάν δεν το είδατε, ανέβηκε νέα εκφώνηση, και οδηγία για την vlc... Ναι, είναι ακριβώς αυτό!όλοι οι αριθμοί πάνω απο 580 θα αντικατασταθουν με 580 και αντιστοιχα με το -580!ΕΡΩΤΗΣΗ ΤΩΡΑ.... Στη σελίδα 3 κάτω από τον τύπο που δίνει τους blockCOEFFS λέει.. Οι τιμές που βρίσκονται εκτός του διαστήματος [-580,580] αποκόπτονται.. Αυτό τι σημαίνει? το -600 ας πούμε γίνεται -580 και το 600 γίνεται 580??? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 08, 2008, 18:38:11 pm Στη runLengthFrame λέει ότι η συνάρτηση υλοποιεί μόνο το 1ο βήμα..
"Με βάση τα παραπάνω κατασκευάστε τη συνάρτηση υπολογισμού των συμβόλων μήκους διαδρομής tokens για τους κβαντισμένους συντελεστές DCT, υλοποιώντας το βήμα 1" Δηλαδή αφού βρούμε τα tokens... κάνουμε διάταξη με αύξων αριθμό ti ή όχι? Εγώ κατάλαβα ότι χεστήκαμε για την αναδιάταξη, οπότε δουλεύουμε μόνο με τον πίνακα 7,38.. Κανένας για επιβεβαίωση ή διάψευση? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 08, 2008, 18:53:57 pm Επίσης μία ηλίθια ερώτηση, από τα παραδείγματα στην εκφώνηση δεν κατάλαβα κάτι..
Όταν έχουμε στο τέλος του block πολλά μηδενικά, θα βάλουμε - token value = 0 ? ή - θα γράψουμε EOB όπως στο παράδειγμα? (προφανώς αυτό ΔΕΝ στέκει) Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 08, 2008, 19:46:06 pm Παιδιά, μήπως θα ήταν καλά όσοι επικοινωνήσατε με κάποιον από τους διδάσκοντες για την εργασία (απορίες) να τα προωθήσετε εδώ για να μην ρωτάμε όλοι τα ίδια πράγματα?
Just an idea... Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 08, 2008, 20:45:11 pm Σελίδα 5, πίνακας για block 3 στο παράδειγμα, 2η σειρά..
για (δέκα 0) ακολουθούμενα από το (3) δίνει token -> (1,8,b001001) Δεν είναι σωστό με την καμία.. Το token value 8 είναι για απλό Zero Run Εdit Μάλλον πρέπει να φύγει το 3, συμφωνώ με ένα παιδί που έκανε ποστ στην πρώτη σελίδα, σόρυ που ξεχνάω όνομα.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: mousitsa on February 09, 2008, 13:27:47 pm Γνωρίζει κανείς αν η εργασία μπορεί να γίνει το καλοκαίρι για να δώσει κανείς το μάθημα το Σεπτέμβρη?
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: KorkoLyk on February 09, 2008, 13:49:58 pm Καλή ερώτηση! ;)
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 09, 2008, 19:35:32 pm Στη runLengthFrame λέει ότι η συνάρτηση υλοποιεί μόνο το 1ο βήμα.. "Με βάση τα παραπάνω κατασκευάστε τη συνάρτηση υπολογισμού των συμβόλων μήκους διαδρομής tokens για τους κβαντισμένους συντελεστές DCT, υλοποιώντας το βήμα 1" Δηλαδή αφού βρούμε τα tokens... κάνουμε διάταξη με αύξων αριθμό ti ή όχι? Εγώ κατάλαβα ότι χεστήκαμε για την αναδιάταξη, οπότε δουλεύουμε μόνο με τον πίνακα 7,38.. Κανένας για επιβεβαίωση ή διάψευση? Για τις ερωτήσεις: 1.Πρέπει να υλοποιήσετε και το 2ο βήμα. Δηλαδή πρέπει να κάνετε διάταξη σύμφωνα με το ti και να το προχωρήσετε κανονικά. 2. Πρέπει να γράψουμε EOB όπως λέει το παράδειγμα. Γιατί "προφανώς" δε στέκει? 3. Έχεις δίκιο. Έχει ξεφύγει ένα τριάρι εκεί. Είναι απλά 10 μηδενικά χωρίς το 3 να ακολουθεί. Σόρρυ. Θα το διορθώσω. ================== Το πάνω είναι από mail του manf Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: mousitsa on February 12, 2008, 10:40:31 am Γνωρίζει κανείς αν η εργασία μπορεί να γίνει το καλοκαίρι για να δώσει κανείς το μάθημα το Σεπτέμβρη? Τελικά δε γίνεται..! Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on February 13, 2008, 16:27:24 pm Mήπως ξέρει κάποιος να μου πει ποια ακριβώς θα είναι η μορφή του πίνακα vlc (6ο ζεύγος συναρτήσεων)?Δηλαδή τι διαστάσεις θα έχει και τι μορφή θα έχουν τα στοιχεία του?Στο ethmmy εξηγεί,αλλά δε διασαφηνίζει πώς σχετίζονται τα extraBits από τα tokens με το stream που προκύπτει από το συγκεκριμένο token σύμφωνα με τους πίνακες Huffman. Μπορεί κανείς να βοηθήσει???
Ευχαριστώ! Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: rhum on February 15, 2008, 17:46:16 pm Η ημερομμηνια παραδοσης ποτε ειναι;
Μαζί με την γραπτή εξέταση; Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Verminoz on February 15, 2008, 17:47:33 pm 29 Φεβρουαρίου αν δε κάνω λάθος!
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lkarydas on February 18, 2008, 02:00:07 am Μια ερώτηση και από μένα...
Στην motEst ας πούμε ότι βρήκαμε πως το macroblock μοιάζει πιο πολύ με το previous (απ' ότι με το golden), και επίσης έχει motion vectors 0, είμαστε δηλαδή στην περίπτωση MBMODES = 0 (INTER_NOMV). Μετά κοιτάμε σε επίπεδο block, συγκρίνοντας με το κατώφλι να δούμε ποιά από τα 4 θα κωδικοποιηθούν και ποιά όχι. Τώρα αν είμαστε σε μία περίπτωση με Pixel Format = 2 για παράδειγμα, δηλαδή 4:2:2, αυτό σημαίνει ότι σε ένα macroblock του luma plane αντιστοιχούν μόνο 2 block στο Cr και 2 στο Cb (και όχι 4 όπως θα ήταν χωρίς subsampling). Με αυτά τα block τι γίνεται όσον αφορά το BCODED? Έχει βρεί κανείς καμιά άκρη? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Tsihiro on February 18, 2008, 03:15:48 am μία υπόθεση,μάλλον λογική που μπορώ να κάνω είναι ότι απλώς θα κάνεις το ίδιο πράγμα αλλά με λιγότερα μακρομπλοκ (ανάλογα με το PF).Δηλαδή θα εμπίπτει στην προηγούμενη περίπτωση που ανέφερες απλά οταν φτάσουμε σε επίπεδο μπλοκ θα κωδικοποιηθεί όποιο μπλοκ υπάρχει, δηλαδή θα αντιμετωπισθεί σαν να είναι :
πχ.με PF=0 Cr [] οπότε και το ΒCODED θα έχει κενά στις θέσεις []. [] [] Προκύπτει κάποιο πρόβλημα με αυτό? :( Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lars on February 19, 2008, 02:12:35 am Ακόμα μια ερώτηση σχετικά με την runLengthFrame().
Ο tokens γράφει ότι είναι ένας struct array που περιέχει το tokens.tokenValue και το tokens.extraBits. Το i είναι το index του token σε ένα μπλοκ. Δεν πρέπει να έχουμε και την πληροφορία για το block b από το οποίο προέρχεται το κάθε token? Πώς γίνεται τότε να ανακατασκευάσουμε τους COEFFS από το tokens και τον BCODED αλλιώς? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lars on February 19, 2008, 16:43:34 pm Κανένας για το παραπάνω?
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 19, 2008, 16:53:36 pm Δε χρειάζεσαι πληροφορία για το b...
Αρχικά το πρώτο token είναι όπως-και-δήποτε για το 1ο block, το 2ο για το 2ο block, και το τρίτο για το 3ο block Θα έχεις όμως για κάθε block ένα δείκτη, που θα δείχνει στην επόμενη θέση για εγγραφή σε αυτό το block. Εάν το πάρεις αλλιώς είναι και κάτι σαν μετρητής, που σου λέει πόσα σύμβολα έχεις βάλει μέχρι τώρα στο block σου, αυξημένο κατά ένα (φυσικά μπορείς να το θεωρήσεις και αλλιώς, να είναι απλός μετρητής, και να μην δείχνει την επόμενη θέση προς εγγραφή, αλλά την τελευταία θέση στην οποία έγινε εγγραφή) έτσι, αν βάλεις στο 2ο block 8 μηδενικά, αυτή η βοηθητική μεταβλητή θα αυξηθεί κατά 8 Ανά πάσα χρονική στιγμή, το επόμενο token θα μπαίνει στο block με τη μικρότερη τιμή αυτού του μετρητή === Αν φαίνεται κουλό κάνε κάποιο παράδειγμα, θα δεις ότι λειτουργεί.. Ελπίζω να μην έκανα κάνα λάθος γιατί πέρασαν πολλές μέρες από τότε που έκανα τη συνάρτηση === εδιτ όταν ο μετρητής σου γίνει 65 (αν δείχνει την επόμενη θέση προς εγγραφή) ή 64 (εάν δείχνει την τελευταία που έγινε εγγραφή), έχεις φτάσει στο τέλος αυτού του block Ελπίζω να βοήθησαν τα παραπάνω.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Panzapart on February 24, 2008, 01:14:17 am Απορία προς καθηγητές...
Στο 2ο μέρος της εργασίας πρέπει να υλοποιήσουμε τη function SeqEntity=encodeTheora(fName, fExtension, startFrame, ... GoPFrames, stopFrame, seqHeader, outFName, qi) Αυτή σύμφωνα με τον πίνακα αποτελείται από SeqHeader (1) και FrameEntityArray(1,*). Στα ορίσματά της όμως δίνουμε seqHeader ? Και στο αποτέλεσμα απλά το περνάμε ή πρέπει εμείς να το υλοποιήσουμε αυτό? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lars on February 24, 2008, 05:02:24 am @dim: Ευχαριστώ!
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Panzapart on February 25, 2008, 11:59:14 am Έχει ανέβει καινούρια έκδοση της εκφώνησης 3.3
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: dim on February 25, 2008, 16:33:58 pm Παίδες με την εργασία την παλεύετε?
Εγώ πλέον φοβάμαι ότι ο χρόνος δεν αρκεί με την καμία, όπως και κάτι άλλοι φίλοι.. Έχω ακόμα motest kai vlc.. Vlc πάλι καλά που με φώτισε και την άφησα για το τέλος..αφού άλλαξε η εκφώνηση.. Motest το debugging δεν έχει τέλος.. Μιλάμε για λιώσιμο ωρών..ρεκόρ ως τις 11 (πρωί)..και αφού καλημερίζεις τους πάντες, τους λες και μια καληνύχτα και την πέφτεις :p.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lkarydas on February 27, 2008, 17:39:03 pm Παίδες με την εργασία την παλεύετε? Εγώ πλέον φοβάμαι ότι ο χρόνος δεν αρκεί με την καμία, όπως και κάτι άλλοι φίλοι.. Έχω ακόμα motest kai vlc.. Vlc πάλι καλά που με φώτισε και την άφησα για το τέλος..αφού άλλαξε η εκφώνηση.. Motest το debugging δεν έχει τέλος.. Μιλάμε για λιώσιμο ωρών..ρεκόρ ως τις 11 (πρωί)..και αφού καλημερίζεις τους πάντες, τους λες και μια καληνύχτα και την πέφτεις :p.. Μας δίνεις πολύ κουράγιο dim. Είναι ωραίο να ξέρεις ότι δεν είσαι μόνος.. PS. Φαντάζεσαι να είχαμε και bitstream για όλα? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Azdul on February 27, 2008, 18:41:03 pm Στον κβαντισμό τα BM,DCSCALE,ACSCALE τα δίνουμε εμείς?Οι πίνακες BM,DCSCALE,ACSCALE που υπάρχουν στο πρότυπο είναι ενδεικτικοί?
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lkarydas on February 27, 2008, 21:08:44 pm Στον κβαντισμό τα BM,DCSCALE,ACSCALE τα δίνουμε εμείς?Οι πίνακες BM,DCSCALE,ACSCALE που υπάρχουν στο πρότυπο είναι ενδεικτικοί? Νομίζω ότι οι πίνακες που βρίσκονται στο τέλος του προτύπου πρέπει να υπάρχουν μέσα στους headers και μετά με βάση το qi που μάλλον το δίνεις εσύ επιλέγονται οι κατάλληλες τιμές. Φυσικά θα μπορούσαμε να απλοποιήσουμε την κατάσταση δίνοντας απλά τις τιμές..Γενικά δεν την έχω ξεκαθαρίσει απόλυτα την κατάσταση οπότε ας ακούσουμε και άλλες γνώμες. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Azdul on February 27, 2008, 21:47:43 pm thnx Ikarydas...εγώ το έβαλα να δίνουμε εμείς τους πίνακες γιατί φαντάζομαι οτι αυτοί που δίνει το πρότυπο είναι ενδεικτικοί και μπορούμε να δώσουμε έναν της επιλογής μας.Να κάνω άλλη μία ερώτηση, το Coeffs σε τί μορφή είναι?Ξέρει κανείς πώς επιλέγουμε τα htiL_DC,hitC_DC,htiL_AC και htiC_AC?Υπάρχει κάποια συγκεκριμένη μεθοδολογία??Ας με βοηθήσει κάποιος plz γιατί έχω πελαγώσει.
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Azdul on February 28, 2008, 20:24:24 pm Anyone?
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Panzapart on February 29, 2008, 14:56:37 pm Ανάλογα με το ti πρέπει να επιλέξεις αρχικά το HG με το οποίο θα κάνεις κωδικοποίηση. Για DC οι πίνακες του HG είναι 1...16 για AC όλοι οι υπόλοιποι. Αν π.χ θέλεις να κωδικοποιήσεις μια τιμή από τους πίνακες 1...16 ψάχνεις να βρείς σέ όλους αυτούς που έχει μικρότερη αναπαράσταση σε bit και επιλέγεις ανάλογα. Για DC είναι εύκολο για AC όμως τα πράγματα δυσκολεύουν γιατί πρέπει για όλους τους συντελεστές να βρεις τη μικρότερη αναπ.σε bit, σε ποιο index πινάκων δηλαδή και όποιο Index δίνει μικρότερο άθροισμα αναπαράστασης για όλους τους AC συντελεστές να το κρατήσεις. Το δικό μου πρόγραμμα κάνει γύρω στα 3 δευτερόλεπτα να το υπολογίσει.
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Azdul on February 29, 2008, 16:36:33 pm Ευχαριστώ πολύ Panzapart...μου πήρε δύο μέρες αλλά τελικά ανακάλυψα οτι είχε ανακοίνωση στο ethmmy.Όσο για τα 3 δευτερόλεπτα δε μου φαίνεται πολύ...το motion estimation π.χ. κάνει κανα 10λέπτο τουλάχιστον σε μενα :P
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on February 29, 2008, 17:39:10 pm Ρε σεις παίδες, τα extra_bits των tokens πού χρησιμοποιούνται; Αφού μετά παίρνουμε μόνο το token_value και το ti, σε τι χρειάζονται τα extra_bits; Επίσης, στην vLC το ti γιατί είναι πίνακας και όχι τιμή; Ακόμη, στα ορίσματα εισόδου της vLC λέει token αλλά μετά λέει tokenValue...
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: rhum on February 29, 2008, 17:50:34 pm Ανάλογα με το ti πρέπει να επιλέξεις αρχικά το HG με το οποίο θα κάνεις κωδικοποίηση. Για DC οι πίνακες του HG είναι 1...16 για AC όλοι οι υπόλοιποι. Αν π.χ θέλεις να κωδικοποιήσεις μια τιμή από τους πίνακες 1...16 ψάχνεις να βρείς σέ όλους αυτούς που έχει μικρότερη αναπαράσταση σε bit και επιλέγεις ανάλογα. Για DC είναι εύκολο για AC όμως τα πράγματα δυσκολεύουν γιατί πρέπει για όλους τους συντελεστές να βρεις τη μικρότερη αναπ.σε bit, σε ποιο index πινάκων δηλαδή και όποιο Index δίνει μικρότερο άθροισμα αναπαράστασης για όλους τους AC συντελεστές να το κρατήσεις. Το δικό μου πρόγραμμα κάνει γύρω στα 3 δευτερόλεπτα να το υπολογίσει. Εννοεις οτι βρισκεις huffman tables(htiL και htiC) διαφορετικους για το καθε μπλοκ; O αλγοριθμος σελ.95 νομιζω οτι οριζει κοινους πινακες για ολο το frame. Για base matrices, εχει χρησιμοποιησει κανεις καποιον αλλο εκτος αυτου που δινεται στο τελος, και που ειναι του vp3;Τον αλγοριθμο σελ 55 για interpolated base matrices;Οσο και να googlaρισα, δεν βρηκα αλλους base matrices. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: rhum on February 29, 2008, 17:56:38 pm Ρε σεις παίδες, τα extra_bits των tokens πού χρησιμοποιούνται; Αφού μετά παίρνουμε μόνο το token_value και το ti, σε τι χρειάζονται τα extra_bits; Επίσης, στην vLC το ti γιατί είναι πίνακας και όχι τιμή; Ακόμη, στα ορίσματα εισόδου της vLC λέει token αλλά μετά λέει tokenValue... 1)πινακες 7.33 και 7.38, για διαφορετικα extra bits οριζονται διαφορετικες παραμετροι των token values. 2)To ti τιμη ειναι για την vlc. 3)token value εννοει Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on February 29, 2008, 18:04:45 pm Ρε σεις παίδες, τα extra_bits των tokens πού χρησιμοποιούνται; Αφού μετά παίρνουμε μόνο το token_value και το ti, σε τι χρειάζονται τα extra_bits; Επίσης, στην vLC το ti γιατί είναι πίνακας και όχι τιμή; Ακόμη, στα ορίσματα εισόδου της vLC λέει token αλλά μετά λέει tokenValue... 1)πινακες 7.33 και 7.38, για διαφορετικα extra bits οριζονται διαφορετικες παραμετροι των token values. 2)To ti τιμη ειναι για την vlc. 3)token value εννοει To +4 και το -4 έχουν και τα 2 Token Value 14 αλλά διαφορετικά extra bits. Για διαφορετικά extra bits υπάρχουν πολλές περιπτώσεις με ίδιο token value. Π.χ. + - 3,4,. ή 69 έως 580 ->0000000000 ... 0111111111. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: rhum on February 29, 2008, 18:31:16 pm Quote To +4 και το -4 έχουν και τα 2 Token Value 14 αλλά διαφορετικά extra bits. Για διαφορετικά extra bits υπάρχουν πολλές περιπτώσεις με ίδιο token value. Π.χ. + - 3,4,. ή 69 έως 580 ->0000000000 ... 0111111111. Εχουν token value 14 και ενα extra bit.Σε αυτην την περιπτωση, αυτο το extra bit ειναι bit προσημου.Αν ειναι 0 τοτε ο αριθμος ειναι θετικος, δηλαδη +4.Αν ειναι 1, τοτε ο αριθμος ειναι αρνητικος, δηλαδη -4. Βασικα διαβασε πως γινεται η αποκωδικοποιηση του καθε token value, σελ.88-93. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on February 29, 2008, 18:48:06 pm Εννοεις οτι βρισκεις huffman tables(htiL και htiC) διαφορετικους για το καθε μπλοκ; O αλγοριθμος σελ.95 νομιζω οτι οριζει κοινους πινακες για ολο το frame. Ναι κι εγώ αυτή την απορία έχω!Γιατί αν πρέπει να το κάνουμε γα κάθε block, δε θα υπάρχει πλήρης αντιστοιχία luma και chroma blocks,σε περίπτωση που έχουμε υποδειγματοληψία χρώματος!Έτσι δε θα μπορούμε να έχουμε htil και htic για κάθε block, εφόσον κάποια luma δε θα έχουν chroma! Ας με διαφωτίσει κάποιος παρακαλώ! Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: rhum on February 29, 2008, 19:07:23 pm Εννοεις οτι βρισκεις huffman tables(htiL και htiC) διαφορετικους για το καθε μπλοκ; O αλγοριθμος σελ.95 νομιζω οτι οριζει κοινους πινακες για ολο το frame. Ναι κι εγώ αυτή την απορία έχω!Γιατί αν πρέπει να το κάνουμε γα κάθε block, δε θα υπάρχει πλήρης αντιστοιχία luma και chroma blocks,σε περίπτωση που έχουμε υποδειγματοληψία χρώματος!Έτσι δε θα μπορούμε να έχουμε htil και htic για κάθε block, εφόσον κάποια luma δε θα έχουν chroma! Ας με διαφωτίσει κάποιος παρακαλώ! Βασικα νομιζω οτι το διατυπωνει λαθος εκει που εξηγει την vlc, για αυτο και το μπερδεμα. Απο τον αλγοριθμο σελ.95 φαινεται ξεκαθαρα οτι τα hti διαβαζονται μονο δυο φορες, για ολο το frame. Αλλωστε αν εδινε διαφορετικα για καθε μπλοκ, θα πρεπει να εδινε είτε htiL είτε htiC, οχι και τα δυο, αφου καθε μπλοκ ειναι είτε L είτε C. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on February 29, 2008, 19:23:40 pm Βασικα νομιζω οτι το διατυπωνει λαθος εκει που εξηγει την vlc, για αυτο και το μπερδεμα. Απο τον αλγοριθμο σελ.95 φαινεται ξεκαθαρα οτι τα hti διαβαζονται μονο δυο φορες, για ολο το frame. Αλλωστε αν εδινε διαφορετικα για καθε μπλοκ, θα πρεπει να εδινε είτε htiL είτε htiC, οχι και τα δυο, αφου καθε μπλοκ ειναι είτε L είτε C. Nαι κι εγώ έτσι σκέφτηκα,αλλιώς δε στέκεται λογικά!Thanx! Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on February 29, 2008, 22:41:25 pm Τα tokens που προκύπτουν από τα EOB και έχουν token value 0-6, πώς βρίσκουμε από ποια 16άδα πινάκων θα κωδικοποιηθούν, εφόσον δεν έχουν ti ?
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on March 01, 2008, 14:49:29 pm Στο eTHMMY λέει:
Οι τιμές αυτές προστίθενται σαν 4μπιτοι αριθμοί στο stream ακριβώς πριν το πρώτο token (ti=0) (όπου αποθηκεύονται οι htiL_DC και htiC_DC) και ακριβώς πριν το δεύτερο token (ti=1) (οι htiL_AC και htiC_AC). Το δεύτερο token έχει ti=1??? Δεν τα έχουμε ταξινομήσει ως προς το ti? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Azdul on March 01, 2008, 17:44:10 pm Νομίζω οτι έχω κάνει το λάθος της δεκαετίας, αν μπορεί κάποιος να με διαφωτίσει στο εξής...Όταν γράφει NBS θεωρούμε οτι τις πρώτες θέσεις μέχρι 4*NMBS τις παίρνουν τα Luma και τις υπόλοιπες τα Cr blocks και τέλος τα Cb blocks??
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 18:41:58 pm Νομίζω οτι έχω κάνει το λάθος της δεκαετίας, αν μπορεί κάποιος να με διαφωτίσει στο εξής...Όταν γράφει NBS θεωρούμε οτι τις πρώτες θέσεις μέχρι 4*NMBS τις παίρνουν τα Luma και τις υπόλοιπες τα Cr blocks και τέλος τα Cb blocks?? Ναι αυτό εννοεί!Στον πίνακα COEFFS δηλαδή όχι στον πίνακα tokens (της πρώτης έκδοσης της εργασίας).Φυσικά ο αριθμός των Cr θα είναι ίσος με των Cb. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 18:44:02 pm Kάτι που θα ήθελα να ρωτησω είναι το εξής:
υπάρχει συναρτηση στο matlab που να μου μετατρέπει ένα string σε πίνακα με την εξής μορφή: 100 σε 1 0 0. Η συνάρτηση str2num ή str2mat μου το μετατρέπει σε πίνακα με ενα μονο στοιχειο, το 100 και όχι 1,0 και 0. Μήπως ξέρει κανείς να με βοηθήσει? Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on March 01, 2008, 19:13:54 pm Kάτι που θα ήθελα να ρωτησω είναι το εξής: Για σένα το 100 είναι πίνακας 1x3 με char. Αν Β το όνομα του πίνακά σου, πάρε τον ανάστροφο Β' (3x1), τρέξε την bin2decυπάρχει συναρτηση στο matlab που να μου μετατρέπει ένα string σε πίνακα με την εξής μορφή: 100 σε 1 0 0. Η συνάρτηση str2num ή str2mat μου το μετατρέπει σε πίνακα με ενα μονο στοιχειο, το 100 και όχι 1,0 και 0. Μήπως ξέρει κανείς να με βοηθήσει? και πάρε τον ανάστροφο του αποτελέσματος. Δηλαδή bin2dec(B')'; Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 19:20:38 pm Kάτι που θα ήθελα να ρωτησω είναι το εξής: Για σένα το 100 είναι πίνακας 1x3 με char. Αν Β το όνομα του πίνακά σου, πάρε τον ανάστροφο Β' (3x1), τρέξε την bin2decυπάρχει συναρτηση στο matlab που να μου μετατρέπει ένα string σε πίνακα με την εξής μορφή: 100 σε 1 0 0. Η συνάρτηση str2num ή str2mat μου το μετατρέπει σε πίνακα με ενα μονο στοιχειο, το 100 και όχι 1,0 και 0. Μήπως ξέρει κανείς να με βοηθήσει? και πάρε τον ανάστροφο του αποτελέσματος. Δηλαδή bin2dec(B')'; Σ'ευχαριστώ πάρα πολύ!!!Πολύτιμη η βοήθειά σου! Να ρωτήσω κάτι τελευταίο?Πώς θα καταλάβουμε αν είμαστε σε luma ή chroma block όταν μετατρέπουμε διαδοχικά όλα τα tokenValues του (πρώην) πίνακα tokens σε δυαδικό stream?Για να ξέρουμε δηλαδή πότε να καλέσουμε τη vlc με όρισμα htil ή htic.... Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Azdul on March 01, 2008, 19:29:45 pm ΚΑΤΑΡΑ!! που θα έλεγε κι ο Cabamaru.Να φανταστώ αυτό ισχύει και για τα MV κλπ ε?δηλαδη πρώτα τα MV των Luma μετά των Cr και μετά των Cb...γιατί εγώ τα έβαλα π.χ. για PF=0 συνεχόμενα των 4 Luma στο καπάκι του 1 Cr μετά 1 Cb και μετά ακολουθούσαν τα άλλα 4 των Luma του επόμενου MB κλπ.Μάλλον αυτό δεν είναι σωστό ε?για το bin εγώ έβρισκα πρώτα τον δεκαδικό και μετά με την εντολή bin = bitget(uint8(dec), 3:-1:1) για 3 bit π.χ. σου έδινε τον πίνακα με κάθε bit ξεχωριστά.
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 19:38:36 pm ΚΑΤΑΡΑ!! που θα έλεγε κι ο Cabamaru.Να φανταστώ αυτό ισχύει και για τα MV κλπ ε?δηλαδη πρώτα τα MV των Luma μετά των Cr και μετά των Cb...γιατί εγώ τα έβαλα π.χ. για PF=0 συνεχόμενα των 4 Luma στο καπάκι του 1 Cr μετά 1 Cb και μετά ακολουθούσαν τα άλλα 4 των Luma του επόμενου MB κλπ.Μάλλον αυτό δεν είναι σωστό ε?για το bin εγώ έβρισκα πρώτα τον δεκαδικό και μετά με την εντολή bin = bitget(uint8(dec), 3:-1:1) για 3 bit π.χ. σου έδινε τον πίνακα με κάθε bit ξεχωριστά. Nα μη σε πα΄ρω στο λαιμό μου για τη motEst γιατι δεν ασχολήθηκα εγώ με αυτή,αλλά για το άλλο είναι σίγουρο γιατί είχα ρωτήσει το Μ.Φαλελάκη και μου είχε πει ακριβώς αυτό: "Τα πρώτα NMBS blocks της σειράς είναι luma και τα υπόλοιπα chroma." Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on March 01, 2008, 19:38:54 pm Κατ'αρχάς, για άγνωστο σε μένα λόγο, σύμφωνα με τις ανακοινώσεις στο eTHMMY δεν είναι μονο htil και htic αλλά htil_AC htil_DC htic_AC htic_DC... Αυτό που λες εγώ το έκανα κρατώντας για κάθε token ένα struct με token_value, ti, extra_bits και bi για το block στο οποίο ανήκουν. Μετά, αν bi<=4*NMBS τότε LUMA, αλλιώς CHROMA...
Τα δικά μου προβλήματα είναι τα παρακάτω: Τα tokens που προκύπτουν από την συγχώνευση των EOB δεν έχουν ούτε ti, ούτε bi.. Με ποιο κριτήριο τα κατατάσουμε? Πώς διαλέγουμε πίνακα; Προς το παρόν έχω πάρει απλά παραδοχές.. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on March 01, 2008, 19:43:04 pm H huffmandeco2 απο το eTHMMY σας δουλεύει;
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 19:46:06 pm Κατ'αρχάς, για άγνωστο σε μένα λόγο, σύμφωνα με τις ανακοινώσεις στο eTHMMY δεν είναι μονο htil και htic αλλά htil_AC htil_DC htic_AC htic_DC... Αυτό που λες εγώ το έκανα κρατώντας για κάθε token ένα struct με token_value, ti, extra_bits και bi για το block στο οποίο ανήκουν. Μετά, αν bi<=4*NMBS τότε LUMA, αλλιώς CHROMA... Τα δικά μου προβλήματα είναι τα παρακάτω: Τα tokens που προκύπτουν από την συγχώνευση των EOB δεν έχουν ούτε ti, ούτε bi.. Με ποιο κριτήριο τα κατατάσουμε? Πώς διαλέγουμε πίνακα; Προς το παρόν έχω πάρει απλά παραδοχές.. Έχεις δίκιο σε αυτό! Εγω σκέφτηκα να βρίσκουμε τον πίνακα που για το συγκεκριμένο hti που αποφασίσαμε για τα υπόλοιπα blocks να δίνει το μικρότερο κώδικα για το συγκεκριμένο tokenValue. Πχ αν αποφασίσαμε ότι hti=3, θα ψάξουμε ποιος πίνακας από τους 3,19,35 κτλ κωδικοποιεί με το μικρότερο αριθμό το συγκεκριμένο tokenValue (0,1,....6). Tο θέμα είναι αν θα κωδικοποιηθεί με βάση τοπ chroma ή το luma. Αυτό θέλει ψάξιμο... Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 19:46:37 pm H huffmandeco2 απο το eTHMMY σας δουλεύει; Όχι έχει πρόβλημα!Αλλά έτσι είναι οι δουλειές τελευταίας στιγμής.... Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: Panzapart on March 01, 2008, 19:46:53 pm H huffmandeco2 απο το eTHMMY σας δουλεύει; Όχι δε βγάζει αποτέλεσμα παιδιά, έστειλα και την απορία στο Φαλελάκη.Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on March 01, 2008, 20:20:26 pm Η ώρα είναι 7.20 , είναι Σάββατο και η προθεσμία κανονικά έληγε χθες. Η νέα προθεσμία είναι για αύριο. Η εκφώνηση έχει αλλάξει τρακόσιες φορές και ακόμα δεν είμαστε σίγουροι για το πρώτο μέρος της εργασίας και η huffmandeco2 ΔΕΝ ΔΟΥΛΕΥΕΙ ! Έλεος...
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: rhum on March 01, 2008, 20:26:01 pm Καλα, χαλαρωστε λιγο.
15 σειρες ειναι ολη κι ολη η huffmandeco2. Ανοιξτε την και βρειτε τί χτυπαει. Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 20:54:23 pm Το θέμα είναι ρε παιδιά ότι αρκετή φαιά ουσία έχουμε ξοδέψει για αυτή την εργασία!Οι περσινοί είχαν κωδικοποίηση ήχου!Εμείς έχουμε και πιο δύσκολη εργασία και μας κάνουν και καψόνια!!!!!!
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on March 01, 2008, 21:02:23 pm Ας μου απαντήσει κάποιος στο εξής απλό ερώτημα: Στο tokenStream πώς ακριβώς γίνεται η αλληλουχία των bits;
Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: blue_electric on March 01, 2008, 21:08:34 pm Ας μου απαντήσει κάποιος στο εξής απλό ερώτημα: Στο tokenStream πώς ακριβώς γίνεται η αλληλουχία των bits; Τα extra_bits μπαίνουν στο stream? Λοιπόν:[htil_DC htic_DC όλα τα DC tokens κωδικοποιημένα htil_AC htic_AC όλα τα AC tokens κωδικοποιημένα] Όταν κωδικοποιείς με vLC ένα token αν έχεi extra bits τα "κολλάς" από πίσω του! Title: Re: [Πολυμέσα] Εργασία 2007-08 Post by: lestat on March 01, 2008, 22:48:10 pm Στον κώδικα της huffmandeco2 σβήστε τη γραμμή
checkDictValidity(dict); και θα δουλέψει. Ωστόσο επιστρέφει μόνο την τιμή tokenvalue και όχι το μήκος... |