Streaming pipeline εικόνας σε VHDL, που χρησιμοποιεί FIFO line buffers και shift registers για να σχηματίσει τη γειτονιά 3×3 που απαιτεί η παρεμβολή RGB.
Το πρόβλημα
Το demosaicing χρειάζεται μια τοπική γειτονιά εικονοστοιχείων, ενώ η διαδρομή κάμερας σε FPGA λαμβάνει τα pixel διαδοχικά. Το βασικό πρόβλημα είναι να σχηματιστεί αυτή η γειτονιά χωρίς να αποθηκευτεί ολόκληρο το καρέ.
Τι φτιάχτηκε
Streaming datapath GBRG Bayer προς RGB. Δέχεται ένα pixel εισόδου 8 bit ανά ρολόι, σχηματίζει παράθυρο υλικού 3×3 με line buffers και shift registers και εκτελεί την παρεμβολή σε RTL.
Τεχνική προσέγγιση
- Είσοδος Bayer 8 bit σε σειρά ράστερ
- Τα FIFO line buffers κρατούν τις προηγούμενες γραμμές της εικόνας
- Τα shift registers συναρμολογούν την τρέχουσα γειτονιά 3×3
- Η παρεμβολή, με επίγνωση της φάσης Bayer, επιλέγει τις εξισώσεις RGB
- Η σύγκριση με αναφορά σε Python υποστηρίζει τη λειτουργική επαλήθευση
Αποφάσεις μηχανικής
- Χρήση line buffers αντί για αποθήκευση ολόκληρου καρέ.
- Το datapath παραμένει streaming, με ένα pixel εισόδου ανά ρολόι.
- Διαχωρισμός της κατασκευής της γειτονιάς από τη λογική ανακατασκευής χρώματος.
- Σύγκριση της εξόδου του υλικού με αναφορά σε λογισμικό, πριν βασιστούμε στις αναφορές υλοποίησης.
Πώς ελέγχθηκε
- Επαλήθευση με υλοποίηση αναφοράς σε Python.
- Η επεξεργασία εικόνας 1024×1024 τεκμηριώνεται στο repository.
- Το timing closure στα 100 MHz τεκμηριώνεται για το επαληθευμένο target flow.
Τι δείχνει
Σχεδιασμός στα όρια υλικού και λογισμικού, streaming ροή δεδομένων, λειτουργική σύγκριση με αναφορά και δουλειά στο timing σε επίπεδο υλοποίησης.
Για την πηγή
Ακαδημαϊκή και μηχανική έρευνα και ανάπτυξη (R&D). Το repository του κώδικα είναι ιδιωτικό, οπότε δεν δημοσιεύεται σύνδεσμος προς αυτό.