13 / 24 · Concetto
Buffer di riga e finestre 3×3
Per W=8,H=6, calcola posizioni di memoria, indice del primo ingresso accettato valido e numero totale di finestre.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Mantieni vicini i dati sovrapposti
Un'operazione 3×3 in ordine per righe richiede il pixel corrente e i valori della stessa colonna nelle due righe precedenti. Due ritardi di riga forniscono quelle righe. Registri a scorrimento orizzontali mantengono tre campioni di ogni riga, formando la finestra. Ciò evita di memorizzare un intero frame, ma i primi campioni non possono formare una finestra completa. Dati memorizzati e uscita valida sono condizioni distinte.
Iniziamo con un solo canale, 3×3 senza riempimento, passo uno e dilatazione uno. Due array di riga di larghezza W più una finestra 3×3 esplicita contengono 2W+9 posizioni di campioni. Questa è la memoria del modello didattico, non un minimo universale. Riempimento, dilatazione, passi diversi o più canali richiedono una nuova analisi di ritardi e validità.
Sequenza di arrivo svolta
Trasmetti in streaming un ingresso 4×4 contenente da uno a sedici. L'indice di ingresso accettato dieci, con numerazione da zero, trasporta il valore undici alla riga due, colonna due. La prima finestra completa è [1,2,3;5,6,7;9,10,11]. Il valore dodici dà [2,3,4;6,7,8;10,11,12]. I valori tredici e quattordici iniziano una nuova riga e hanno storia orizzontale insufficiente. I valori quindici e sedici producono le ultime due finestre.
Quindi sedici ingressi accettati producono quattro finestre, agli indici [10,11,14,15]. Anche a un pixel per ciclo, inizializzazione e confini di riga creano intervalli vuoti. Distingui la frequenza sull'intero frame 4/16 dalla frequenza istantanea di uscita dentro una sequenza valida.
Alla colonna zero, azzera o invalida la storia orizzontale. Altrimenti una nuova riga può combinare i primi campioni con le ultime colonne della riga precedente. Il nostro modello azzera la finestra orizzontale e sopprime l'uscita fino alla colonna due. Conserva i ritardi di riga. Avanza i contatori di riga e colonna usando pixel accettati anziché clock trascorsi.
Con larghezza quattro, la memoria è di diciassette campioni. Diversamente da un buffer dell'intero frame 4H, non cresce con l'altezza del frame. Tuttavia il consumatore MAC deve avere tempo per elaborare ogni finestra completa, soprattutto tra più canali di uscita. La lezione successiva aggiunge controllo dei trasferimenti. Segui ingresso, ritardi di riga, finestra e consumatore nel diagramma supportato.
- Pixel di ingresso: Avanzare soltanto su un trasferimento accettato
- Due ritardi di riga: Recuperare i valori delle due righe precedenti
- Finestra 3x3: Valida dalla riga 2 e colonna 2
- Consumatore MAC: Elaborare o memorizzare la finestra completa
Prova tu
Per W=8,H=6, calcola posizioni di memoria, indice del primo ingresso accettato valido e numero totale di finestre.
Leggi la spiegazione
La memoria è di 25 posizioni. La prima posizione valida è riga due,colonna due, indice 2×8+2=18. L'uscita è 4×6, dando 24 finestre.