Thursday 21 September 2017

Moving Media Filtro Verilog Code


Significa filtro, o il segnale e l'immagine di elaborazione DSP e DIP software media filter. Category Digital development. Abstract L'articolo è una guida pratica per il filtro media, o la comprensione media filtro e l'attuazione articolo contiene teoria, il codice sorgente C, istruzioni di programmazione e applicazione di esempio. 1 Introduzione a dire il filtro, o il filtro filter. Mean media o filtro media è filtro a finestre della classe lineare, che l'immagine del segnale leviga la filtro funziona come passa-basso uno l'idea alla base del filtro è per ogni elemento dell'immagine segnale di prendere una media attraverso il suo quartiere per capire come che è fatto, in pratica, partiamo con finestra Filtro finestra idea.2 o mask. Let noi immaginiamo, si dovrebbe leggere una lettera e ciò che si vede nel testo sono limitati dal buco nel stencil speciale come this. Fig 1 Prima stencil. So, il risultato della lettura è t suono Ok, leggiamo di nuovo la lettera, ma con l'aiuto di un altro stencil. Fig 2 seconda stencil. Now il risultato della lettura t è il suono facciamo il terzo tentativo. Fig 3 Terzo stencil. Now si stanno leggendo la lettera T come sound. What accade qui per dire che in linguaggio matematico, si stanno facendo un'operazione di lettura sopra elemento lettera T e il suono risultato dipende dalle lettere di quartiere elemento accanto a T. and che stencil, che aiuta a raccogliere quartiere elemento, è la finestra Sì, la finestra è solo uno stencil o un motivo, per mezzo del quale si sta selezionando il quartiere elemento di un insieme di elementi in tutto il data una per aiutarvi a prendere decisioni un altro nome per la finestra del filtro è la maschera 3 in 2D. In tre dimensioni pensare a costruire Ed ora circa camera in quell'edificio la stanza è come finestra 3D, che taglia fuori alcuni subspazio da tutto lo spazio del palazzo si trovano finestra 3D in un'immagine di volume voxel processing. Fig 6 finestra o la maschera di dimensioni 3 3 3 in intesa 3D.3 significa filter. Now vediamo, come prendere una media di elemento s quartiere la formula è semplice elementi riassumere e dividere la somma per il numero di elementi per esempio, calcoliamo una media per il caso, raffigurato in fig 7.Fig 7 l'assunzione di un average. And che è tutto Sì, non ci resta che filtrato segnale 1D dal filtro media facciamo curriculum e scrivere le istruzioni passo-passo per l'elaborazione dal filtro filter. Mean media, o un filtro medio algorithm. Place una finestra sopra element. Take una media di riassumere gli elementi e dividere la somma per il numero di elements. Now, quando abbiamo l'algoritmo, è il momento di scrivere del codice let noi scendiamo a programming.4 1D significano filtrare programming. In questa sezione sviluppiamo 1D intende filtro con la finestra di dimensioni 5 Cerchiamo di avere 1D segnale di lunghezza N in input il primo passo è la finestra immissione facciamo che cambiando l'indice dei principali element. Pay attenzione, che stiamo iniziando con il terzo elemento e terminando con il terzultimo il problema è che non possiamo iniziare con il primo elemento, perché in questo caso la parte sinistra della finestra del filtro è vuota discuteremo qui di seguito, come per risolvere il problem. The secondo passo sta prendendo la media, ok. Now, dobbiamo annotare il algoritmo come elemento function. Type potrebbe essere definita as.5 trattare edges. For tutto finestra filtri c'è qualche problema che è bordo trattare Se si posiziona sopra la finestra prima ultimo elemento, la parte sinistra a destra della finestra sarà vuota per colmare il gap, il segnale dovrebbe essere esteso per filtro media vi è una buona idea di estendere il segnale o immagine simmetricamente, come this. So, prima di passare il segnale di la nostra funzione di filtro media il segnale dovrebbe essere esteso Facciamo scriviamo l'involucro, che rende tutti preparations. As si può vedere, il nostro codice tiene conto di alcune questioni pratiche prima di tutto controllare il nostro segnale parametri di input non dovrebbe essere NULL, e il segnale lunghezza dovrebbe essere positive. Second passo, controlliamo caso N 1 Questo caso è uno speciale, perché per costruire l'estensione abbiamo bisogno di almeno due elementi per il segnale di 1 lunghezza dell'elemento il risultato è il segnale stesso, nonché di prestare attenzione, le nostre opere di filtro medi sul posto, se il risultato parametro di output è NULL. Now farci allocare memoria per il segnale extension. And il check allocation. Implementation memoria di FIR filtraggio in C, parte 2 3.Part mostrato un esempio di un filtro FIR in C utilizzando punto fisso Questo tutorial su FIR filtraggio mostra come applicare diversi filtri FIR diversi per gli stessi dati di ingresso gli esempi di questa parte sono anche in punto fisso l'esempio è un singolo file C con il codice del filtro FIR in alto, e un piccolo programma di test sul fondo in un effettiva attuazione, si sarebbe probabilmente desidera dividere il codice in diverse files. Click il seguente link per una versione PDF del codice di esempio di codice example. The è mostrato below. There sono alcune differenze rispetto al codice di esempio della parte 2 First , ho creato una funzione per memorizzare i campioni di ingresso ai firStoreNewSamples matrice del campione di ingresso Questa funzione è chiamata una volta per ogni blocco di campioni di ingresso che vengono elaborati la funzione chiamante passa un puntatore ai nuovi campioni di ingresso, e il numero di nuovi campioni copiare la funzione restituisce l'indirizzo al quale applicare la FIR filter. Second, ho aggiunto una funzione per spostare i campioni dopo l'elaborazione di un blocco di campioni firMoveProcSamples Ancora una volta, questa funzione viene chiamata una volta per ogni blocco di campioni, non una volta per ogni filtro FIR applied. The funzione di filtraggio FIR firFixed ha lo stesso elenco di argomenti come nell'esempio parte 2, ma l'argomento di ingresso è un po 'diverso, in questo caso, il puntatore di ingresso passata dovrebbe essere l'indirizzo restituito dalla funzione firStoreNewSamples, piuttosto che un puntatore a il programma di test buffer. The campione di ingresso mostra un esempio in cui due differenti filtri FIR vengono applicati agli stessi dati di uscita Prima file di un ingresso è aperto per campioni di ingresso e due file di output vengono aperti uno per ogni filtro nel ciclo di elaborazione del campione, un blocco fino a 80 campioni viene letto e memorizzato nella matrice di lavoro per i filtri successivo il filtro passa-banda 63 rubinetto è applicata chiamando firFixed, e il blocco di campioni output viene scritto in un file in seguito, viene applicato il 8 rubinetto in movimento filtro a media e i campioni di uscita sono scritti in un file diverso Infine, il tampone campione viene spostata per preparare il prossimo blocco di codice di ingresso samples. The ho dimostrato opere per tuttavia molti filtri che si desidera implementare Ricordate di tenere traccia del rubinetto massima del filtro di lunghezza, e l'input dimensione del blocco del campione, e modificare il dichiarazioni definire in modo appropriato questo si conclude il mio tutorial su base FIR filters. Leave un Commento Annulla reply. Thank tanto per lavoro molto bel tutorial vorrei implementare il tuo esempio in controllore AVR Atmega16 I hanno la ReadADC 0x00 funzione di ADC che legge il valore 10bit dai registri ADC dove devo inserire il valore ADC per l'esempio precedente sono nuovo di programma del controllore, sarò grato per le vostre guide e suggerimenti Si prega di guida mi dove devo rendere necessaria cambiamenti di sopra example. Abdul, grazie per il complimento Si dovrebbe leggere I campioni di ADC in un array e poi passare l'indirizzo di tale matrice alla funzione firFixed come secondo argomento Nel programma principale, ho letto i campioni da un file nella matrice chiamato ingresso Nel codice si dovrebbe leggere i campioni ADC in una matrice simile nell'esempio che ho elaborato 80 campioni alla volta, ma si dovrebbe cambiare questo valore a ciò che è appropriato per voi l'elaborazione delle applicazioni un campione alla volta sarebbe ridurre al minimo il ritardo attraverso la filtro, ma sarebbe il più costoso in termini di cycles. Dear Shawn, grazie per la risposta ho letto valore ADC come campioni di ingresso ADCRead 0x00, e superato l'indirizzo dei campioni di ingresso ai firStoreNewSamples funzione come campioni firStoreNewSamples InP di ingresso, dimensioni io sono confuso circa l'intero dimensione come dimensione è la lunghezza, per favore, mi suggeriscono quello che dovrebbe essere il valore della dimensione in quanto funzione firFixed ha cinque argomenti coeffs firFixed, INP, uscita, dimensioni, FILTERLEN e inp viene letto da firStoreNewSamples mio il programma è elencato di seguito gentilmente chek sarei ringrazio completo a voi, grazie. includere includere includere. definire ADCVREFTYPE 0x20 definire PWM1DCReg OCR1A. numero massimo di ingressi che possono essere gestiti in una chiamata di funzione di definire MAXINPUTLEN 25 lunghezza massima del filtro che può essere maneggiato definire MAXFLTLEN 16 buffer per contenere tutti i campioni di ingresso definire bufferLen MAXFLTLEN 1 MAXINPUTLEN. array per contenere campioni di ingresso int16t insamp bufferLen. definire CAMPIONI 25. FIR init vuoto firFixedInit vuoto memset insamp, 0, sizeof insamp. memorizzare nuovi campioni di ingresso int16t firStoreNewSamples int16t inp, lunghezza int mettere i nuovi campioni nella fascia alta del buffer memcpy insamp MAXFLTLEN 1, inp, lunghezza sizeof int16t restituire la posizione in cui applicare il ritorno di filtraggio insamp MAXFLTLEN campioni trasformati 1. spostare vuoto campioni di ingresso spostamento lunghezza firMoveProcSamples int indietro nel tempo per la prossima volta memmove insamp 0, lunghezza insamp, MAXFLTLEN 1 sizeof int16t. la funzione void filtro FIR firFixed coeffs int16t, int16t ingresso, uscita int16t, lunghezza int, int filterLength int32t acc accumulatore per Mac int16t puntatore coeffp a coefficienti int16t puntatore inputp di campioni di ingresso int n int k. applicare il filtro per ogni campione di ingresso per n 0 n lunghezza n calcolano uscita n coeffp coeffs inputp ingresso n carico arrotondamento costante acc 1 14 eseguire la moltiplicazione-addizione per k 0 k 0x3FFFFFFF secondo 0x3FFFFFFF altrimenti se acc 15. passa-basso frequenza di taglio 1000Hz, campionamento 8915Hz frequenza di definire FILTERLEN 16 coeffs int16t FILTERLEN 0xFF45, 0xFE83, 0xFDB2, 0xFFC9, 0x088E, 0x18A4, 0x2B29, 0x37AF, 0x37AF, 0x2B29, 0x18A4, 0x088E, 0xFFC9, 0xFDB2, 0xFE83, 0xFF45.PORTA 0x00 0x00 DDRA PORTB 0x00 DDRB 0xFF PORTC 0x00 DDRC 0xFF PORTD 0x00 0x20 DDRD PIND 5 Filtro Output. void InitADC vuoto ADMUX ADCVREFTYPE 0xff Selezionare il canale 0 ADCSRA 0xC4 Abilita ADC iniziare il 1 ° manichino conversion. int16t ReadADC canale unsigned char int16t ADCValue. ADMUX canale ADCVREFTYPE 0xff Selezionare channel. delayus 10 Ritardo necessaria per la stabilizzazione dell'ingresso ADC voltage. ADCSRA 0x40 Comincia ADCSRA conversion. while 0x10 Controllare se la conversione è ready. ADCSRA 0x10 Cancella conversione bandiera pronta impostando i bit. ADCValue ADCL Leggi 8 bit bassi primo importante ADCValue int ADCH 8 Leggi 2 bit alti e moltiplicare con 256.void timer1 vuoto Contatore timer 1 inizializzazione fonte Clock valore di orologio di sistema 8000 000 kHz Modalità 8 bit Pulse Width Modulation uscita non-Inv OC1B uscita Discon frequenza di uscita PWM OC1A è raddoppiata soppressione del rumore Off91,09 cattura di ingresso sul fronte di discesa. TCCR1A 0x91 0x09 TCCR1B TCNT1H 0x00 0x00 TCNT1L ICR1H 0x00 0x00 ICR1L OCR1AH ​​0x00 0x00 OCR1AL OCR1BH 0x00 OCR1BL 0x00. Inizializzare tutti i dispositivi cli Cancella tutti i campioni di ingresso int16t interrupt InitPort InitADC dimensioni timer1.int int16t CAMPIONI uscita int16t ing. inizializzare il firFixedInit filtro. processo tutti i campioni fanno i campioni di lettura a partire dalla grandezza del file di input fread, int16t sizeof, CAMPIONI, memorizzare nuovi campioni campioni di ingresso InfID ReadADC 0x00 a matrice di lavoro INP CAMPIONI firStoreNewSamples di input, dimensioni. applicare ogni filtro coeffs firFixed, INP, uscita, dimensioni, FILTERLEN. spostare elaborati dimensione campioni firMoveProcSamples mentre la dimensione 0. interrupt esterna s inizializzazione INT0 Off Off INT1 MCUCR 0x00 MCUCSR 0x00. Timer s contatore s interrupt s inizializzazione TIMSK 0x83. Comparatore analogico inizializzazione analogico Comparatore Off analogico Comparatore di cattura di ingresso da Contatore timer 1 Off ACSR 0x80 SFIOR 0x00.sei Uscita di abilitazione uscita globale interrupt. PWM1DCReg per la porta di uscita filter. PORTB Toggle per consentire la misurazione della ISR Frequenza di campionamento PORTC ADCH Controllare il risultato ADCH Stato. ci sono una serie di cose sbagliate con il tuo codice sembra che si sta leggendo un solo campione alla volta, in modo che avrebbe senso cambiare i cAMPIONI definire per 1 o semplicemente utilizzare una variabile al posto di un array la dimensione era in origine il numero di campioni di leggere dal file nel mio esempio si dovrebbe solo passare 1, invece, se si sta facendo 1 campione alla volta il ciclo do deve essere eliminato completamente dal momento che non sei più la lettura da un file si dovrebbe essere o polling l'interrupt timer o la scrittura di un ISR in modo che si può leggere dal ADC periodicamente 8000 o 8915 volte al secondo, a giudicare dai commenti nel codice e probabilmente bisogno di scrivere per l'output registrare ogni volta che si dispone di un nuovo output. I consiglio anche a partire da un programma più semplice in cui è sufficiente leggere l'ADC e poi uscita ciò che si legge Una volta che avete che lavorare, mettere nel filtro code. I speranza che helps. Dear Shawn, Grazie per la vostra guida e suggerimenti sono nuovo al controller di programmazione devo iniziare prima molto più semplice esempio sono molto interessato a imparare a programmare il controllore, se possibile, per favore mi suggeriscono come devo iniziare ho Cominciando conoscenza AVR architettura della serie ATmega microcontrollori a 8 bit e sto usando AVR Studio per la programmazione del regolatore prega di guida mi ha come dovrei iniziare lavorando su controller. Abdul il mio consiglio è di iniziare con alcuni programmi di esempio fornite con il kit di sviluppo o di strumenti, o altrove e fare in modo che si può farli lavorare correttamente allora provare a sperimentare modificando questi programs. Once ti annoi con quel , provare a fare il proprio programma di iniziare con qualcosa di semplice come la creazione di ADC e la lettura da esso poi aggiungere ulteriori funzionalità ad un passo alla volta aggiungere del codice per impostare il timer e verificarne il corretto funzionamento Aggiungere codice per interrogare l'interrupt timer Poi prova codifica un servizio di routine di interrupt ISR Poi aggiungere il codice alla ISR di leggere l'ADC il trucco è quello di scrivere una piccola quantità di codice alla volta e verificare che funzioni ogni passo del cammino che di solito è più facile che scrivere un sacco di codice in un momento, e poi cercando di eseguire il debug di tutto in una volta, soprattutto se si sta facendo qualcosa che è nuovo per you. Dear Shawn, Grazie mille per il suggerimento stimati e non vedo l'ora per il vostro aiuto, se ho trovato alcun problema in programmazione in futuro Grazie again. Shawn, sto cercando di fare un equalizzatore grafico utilizzando filtri FIR e questo è stato molto utile finora, ma mi chiedevo se si dispone di tutte le informazioni su come applicare il guadagno per l'uscita di ciascun band. Hi Joseph per un equalizzatore grafico, si consiglia di applicare un guadagno per ciascuna banda moltiplicando il risultato finale del filtraggio da un numero compreso tra 0 e 1 Così ogni filtro dovrebbe avere un guadagno massimo di 1 alla frequenza centrale e quindi si dovrebbe avere un set di guadagni per ogni banda è migliore per esprimere i guadagni in decibel dB se fare un display o di controllo grafico come un cursore il guadagno in dB è di 20 log10 g dove g è il valore moltiplicazione tra appena sopra 0 e 1 Poi -6 corrisponde dB per un guadagno di circa 0 5 Questo è il 20 log10 0 5 è di circa -6 la formula inversa è g pow10 g 20 dove g è il guadagno in dB Quindi, se il guadagno è -24 dB, il valore del moltiplicatore è g pow10 -24 20 0 063 la ragione per usare decibel è perché la percezione del volume segue un logaritmica scale. I speranza che aiuta you. Hi Shawn, Grande esercitazione tuo blog è molto più pratico roba della maggior parte dei libri di elaborazione del segnale ho un paio di follow-up domande su il vostro tutorial e sarebbe bello se potesse puntare nella giusta direction. Am cercando di implementare in hardware Verilog a 32 bit per Mac con 2 ingressi a 16 bit Se voglio salvare di nuovo il risultato a 32 bit in un registro a 16 bit, I capire che per punto fisso moltiplicazione firmato-firmato dobbiamo solo senza arrotondamento po 'estratto di 30 a 15 e non 31 becuse del doppio sign.1 sono un po' confuso, se ho bisogno di un hardware differente per moltiplicare firmato frazionata e puro intero moltiplicare Dire che uso due separati a 16 bit registri per memorizzare il risultato a 32 bit della moltiplicazione Pensi che solo utilizza un cambio condizionale tra il risultato a 32 bit moltiplicatore subito dopo l'hardware multplier e poco prima di riporla in 2 registri separati sarebbe sufficiente il cambio condizionale shifting lasciata da 1 per moltiplicare frazionata e lo spostamento da 0 a multiply. Thanks interi per il commento il tuo secondo quesito sembra essere stato perso per rispondere alla tua prima domanda, si dovrebbe essere in grado di utilizzare lo stesso moltiplicatore sia per intero e la moltiplicazione punto fisso, proprio come avete descritti per il moltiplicatore punto fisso, c'è un caso particolare che è necessario essere a conoscenza di, che è moltiplicando -1 -1 da dove -1 è 0x8000 in Q frazionale 15 Quando si moltiplica 0x8000 dal 0x8000, il risultato sarà 0x4000, 0000 Se si sposta a sinistra che si finisce con 0x8000,0000, in modo che il risultato finale è che i tempi -1 -1 è uguale a -1 Alcuni modi per gestire questo are.1 Mai moltiplicare -1 di -1 2 saturare il risultato di 0x7FFF, FFFF 3 sollevare un flag di overflow e gestire l'errore somehow. I sperare che il filtraggio helps. Mean Filtermon nomi significano, ammorbidimento, una media, filtraggio Box filtering. Brief Description. Mean è un semplice, intuitivo e facile da implementare il metodo di immagini smoothing , cioè riducendo la quantità di variazione di intensità tra un pixel e l'altro è spesso usato per ridurre il rumore in images. How e works. The idea di filtraggio media è semplicemente quello di sostituire ogni valore di pixel in un'immagine con il valore medio media del suo vicini di casa, tra cui se stesso questo ha l'effetto di eliminare i valori dei pixel, che sono rappresentativi del loro ambiente mezzo filtrante di solito è pensato come un filtro di convoluzione come altre circonvoluzioni si basa su un kernel che rappresenta la forma e le dimensioni del quartiere da campionare quando calcolo della media Spesso un kernel piazza 3 3 viene utilizzata, come mostrato in figura 1, anche se noccioli grandi pe 5 5 quadrati possono essere utilizzati per levigatura più grave Nota che un piccolo kernel può essere applicato più volte al fine di produrre una simile ma non effetto identico come un unico passaggio con un grande kernel. Figure 1 3 3 kernel media spesso usato in media filteringputing la convoluzione diretta di un'immagine con questo kernel svolge la media filtraggio process. Guidelines per il filtraggio Use. Mean è più comunemente usato come un metodo semplice per ridurre il rumore in un image. We illustrare il filtro using. shows dell'originale corrotta da rumore gaussiano con media zero e una deviazione standard di 8.shows l'effetto dell'applicazione di un filtro 3 3 significare noti che il rumore è meno evidente, ma l'immagine è stata addolcita Se si aumenta la dimensione del filtro medio di 5 5, si ottiene un'immagine con meno rumore e meno alto particolare frequenza, come mostrato stessa immagine più gravemente corrotto da rumore gaussiano con in. The media di zero e uno di 13 è mostrata in. is il risultato della media di filtraggio con un kernel. An compito ancora più impegnativo 3 3 è previsto by. shows l'effetto levigante dell'immagine rumoroso con un 3 3 significare filtro Dal momento che il rumore colpo valori di pixel sono spesso molto diversi dai valori circostanti, tendono a distorcere significativamente la media dei pixel calcolata la media filter. Using 5 5 Filtro invece gives. This risultato non è un miglioramento significativo nella riduzione del rumore e, inoltre, l'immagine è ora esempi molto blurred. These illustrano i due problemi principali con il filtraggio media, che are. A singolo pixel con un valore molto rappresentativo possono influenzare significativamente il valore medio di tutti i pixel nel suo neighborhood. When quartiere filtro a cavallo di un bordo, il filtro interpolerà nuovi valori per pixel sul bordo e così sarà sfocatura che il bordo Questo può essere un problema se sono richiesti spigoli vivi nel output. Both di questi problemi vengono affrontati dal filtro mediano, che spesso è un filtro migliore per ridurre il rumore del significa filtro, ma richiede più tempo per compute. In generali atti filtri medi come un filtro passa-basso di frequenza e, quindi, riduce i derivati ​​intensità spaziali presenti nell'immagine Abbiamo già visto questo effetto come un ammorbidimento delle caratteristiche facciali in quanto sopra esempio Consideriamo ora la image. which raffigura una scena che contiene una più ampia gamma di diverse frequenze spaziali Dopo lisciando una volta con un filtro a 3 3 significa che obtain. Notice che i dati frequenza spaziale basso in background non è stata colpita in modo significativo il filtraggio, ma la una volta bordi netti del soggetto in primo piano sono state sensibilmente lisciato Dopo filtrazione con un filtro 7 7, otteniamo un'illustrazione ancora più drammatico di questo fenomeno inpare questo risultato a quello ottenuto facendo passare un filtro 3 3 sopra l'immagine originale tre volte Inmon varianti. variazioni sul filtro di smoothing media discussi qui includono soglia della media in cui smoothing viene applicato a condizione che il valore di pixel centrale viene modificato solo se la differenza tra il valore iniziale e il valore medio è maggiore di una soglia prefissata Questo ha l'effetto che il rumore è lisciato con una perdita meno drammatica immagine filtri di convoluzione detail. Other che non calcolare la media di un quartiere sono spesso utilizzati per la lisciatura uno dei più comuni di questi è il gaussiana smoothing filter. Interactive Experimentation. You può interattivamente sperimentare questo operatore cliccando here. The significa filtro è calcolata utilizzando una convoluzione si può pensare di eventuali modi in cui possono essere utilizzate le proprietà speciali del kernel filtro di mezzo per accelerare la circonvoluzione Qual è la complessità computazionale di questo veloce convolution. Use un rilevatore bordo sulla nota immagine. E la forza dell'uscita Poi applicare un filtro 3 3 significare all'immagine originale ed eseguire nuovamente il rilevatore bordo commento alla differenza Cosa accade se un 5 5 o un filtro 7 7 è una used. Applying 3 3 significano filtro due volte non produce abbastanza lo stesso risultato di applicazione di un filtro 5 5 significare volta Tuttavia, un nucleo 5 5 convoluzione può essere costruito equivalente cosa significa questo kernel guardare like. Create un kernel 7 7 convoluzione avente un equivalente la validità di tre passaggi con un 3 a 3 significa filter. How pensi che il filtro media sarebbe far fronte con rumore gaussiano che non è stato simmetrica rispetto allo zero Provate alcuni examples. R Boyle e R Thomas Computer Vision un primo piatto Blackwell Scientific Publications, 1988, pp 32 - 34.E Davies Machine Vision Theory, algoritmi e le modalità Academic Press, 1990, cap 3.D Vernon Machine Vision Prentice-Hall, 1991 informazioni cap 4.Local Information. Specific su questo operatore può essere trovata consigli generali here. More circa l'installazione HIPR locale è disponibile nella sezione introduttiva Informazioni locali.

No comments:

Post a Comment