พื้นหลังอย่างรวดเร็วบางอย่าง:
Ambilightเป็นระบบของทีวี Philips บางรุ่นที่วิเคราะห์ข้อมูลสีบนหน้าจอจากนั้นตั้งค่า LED บางส่วนที่ด้านหลังของจอแสดงผลเพื่อฉายภาพสีของหน้าจอลงบนผนัง มันเป็นเอฟเฟกต์สวย ๆ มีโคลนของระบบนี้ในตอนนี้ที่ใช้พีซีเพื่อประมวลผลวิดีโอและควบคุมไฟ LED ฉันคิดว่านี่น่าจะเกินความจริงนิดหน่อย - โดยใช้ทั้งเครื่องเพื่อเต้นรำ LED บางตัว ...
ฉันต้องการที่จะดัดแปลงNeTV ของ bunnyเพื่อประมวลผลการเข้ารหัสฟีดวิดีโอ HDMI และขับ LED บางตัว ฉันรู้ว่า NeTV ได้รับการออกแบบมาเพื่อวัตถุประสงค์อื่น แต่ฉันรู้สึกว่ามันสามารถปรับเปลี่ยนได้เพื่อให้บรรลุเป้าหมายของฉัน ฉันไม่สนใจระบบย่อยของ Linux, การปลอมแปลง I2C, การซ้อนทับวิดีโอ ฯลฯ ณ จุดนี้ฉันไม่เกี่ยวข้องกับการทำงานกับสตรีมเข้ารหัส HDCP
FPGA Block Diagram
นี่คือแผนภาพบล็อกจากหนึ่งในสไลด์การนำเสนอของ bunnie ส่วนที่เหลือของชุดสไลด์อยู่ที่นี่
สไลด์นี้ดูเหมือนจะบ่งบอกว่าพิกเซลวิดีโอในความเป็นจริงการถอดรหัส (ไม่จำเป็นต้องถอดรหัส )
ในที่สุด ... บางความคิดและคำถามของฉัน:
สามารถทำได้บนฮาร์ดแวร์ที่ฉันต้องการหรือไม่ หาก "ใช่" ให้ทำต่อไป! ถ้า "ไม่" บอกฉันว่าต้องการอะไรอีก!
ฉันจะสามารถประมวลผลข้อมูลวิดีโอโดยไม่มีหน่วยความจำภายนอกหรือไม่ ไม่มีหน่วยความจำที่ FPGA สามารถเข้าถึงได้โดยตรงเท่าที่ฉันสามารถบอกได้ อาจขึ้นอยู่กับอัลกอริทึมที่ฉันใช้ในการประมวลผลข้อมูลวิดีโอ - เพื่อใช้เป็น FPGA Block RAM น้อยที่สุดเท่าที่จะเป็นไปได้ฉันคาดเดาว่าฉันต้องการใช้ 'การรวมซ้ำวนซ้ำ' ของพิกเซลที่เข้ามาแทนที่จะเก็บทั้งหมด เฟรมของข้อมูลรูปภาพจากนั้นเฉลี่ยสี มีคำแนะนำใดบ้างเกี่ยวกับการใช้อัลกอริทึมนี้? วิธีเริ่มต้นด้วยสิ่งนี้คือสิ่งกีดขวางที่ยิ่งใหญ่ที่สุดของฉัน
ฉันตรวจสอบซอร์สโค้ดว่าฉันควรจะ 'แตะลงใน' ข้อมูลวิดีโอได้อย่างไร
ดูเหมือนว่าเป็นจุดที่เหมาะสม:
ฉันรู้ว่าภาพนี้ยาว - มันดีที่สุดที่ฉันสามารถทำได้ในขณะที่อ่านให้ชัดเจน ตำหนิเครื่องมือของ Xilinx!
ดูเหมือนว่าจะใช้ข้อมูล TMDS และเอาต์พุต 8 บิตสำหรับแต่ละสีฉันควรมีเครื่องสถานะบางอย่างสำหรับไดรเวอร์ LED - ทุกรอบนาฬิกาจะได้รับข้อมูลพิกเซลจากโมดูลใดก็ตามที่ฉันสร้างเพื่อประมวลผลข้อมูลวิดีโอ
ขออภัยถ้านี่เป็นคำพูดหรือยาว - ฉันพยายามที่จะอย่างละเอียด ... ฉันแค่ต้องการความช่วยเหลือในการลงจากพื้นด้วย นี่เป็นความพยายามครั้งแรกของฉันที่โครงการ FPGA บางคนอาจบอกว่ามันยากเกินไปสำหรับผู้เริ่มต้น แต่ฉันบอกว่า ... ต้องเริ่มต้นที่ไหนสักแห่ง :) ขอบคุณสำหรับการอ่าน