Picture in Picture6.111 Final ProjectEdward SemperVincent WuSue ZhengProject Overviewz Display two live video feeds on the screen at the same time.z Perform some manipulation of one of the feeds.z Converting from NTSC to VGAz Using lots of RAM and needs way to manage communicationProject Overview (continued)RescalingRotationTranslationIntegrationSource 1Source 2Basic Block DiagramStage 1Video A(NTSC)Video B(NTSC)FrontBackStage 2Stage 3Modified frontVideo C(VGA)More detailed block diagramctrlstage149817754981775SRAMSRAMDACSRAM SRAMSRAMSRAMctrlstage2ctrlstage3ROMPixelclkSyncGeneratorv_synch_syncVideo AVideo BVideo OutRam CtrlRam CtrlRam CtrlRam CtrlRam CtrlRam CtrlStage 1: Digitizing Videoz User controls choice of front and back signalsz Frame size is 320x240 = 6MHzz Sync signals from GS4981 indicates sample start pointStage 1: RAM managementz Passing frames (RAM) between stagesz Parallel processing leads to 28 RAMsz Limited output pins on FPGAz Need to manage handoffs transparent to the other stagesStage 2: Digital Processingz Read pixels from sample storage RAMz CG Transforms can be split up into two 1-D problems•Perform a Vertical Transform on the frame columns (scaling, translation offset)•Store result in an intermediate RAM•Perform a Horizontal Transform on the frame rows•Store result in an final output RAMStage 2: Digital Processing+coeffstrans_opparam_vals_coefft_coeffcounterwrite_addressread_addressread_addressconversionread_addressinteger partphase [decimal part]ADC Samples RAM QAveragelum_valuewrite_addressIntermediateRAMs*Vertical TransformStage 3: Output to VGAz Combine two video feeds into one video streamz Search foreground for blanking signalz Generate sync signals for VGA monitorStage 3: Handling User Inputz User can control foreground image by pushing buttons and toggling switches• Scale• Angle• Movementz Appropriate response for holding of
View Full Document