FPGA voor de hobby.

Een FPGA kan toch van ieder frame gewoon live de CRC32 uitrekenen? Of MD5 ofzoiets.

Die hash je, (neem de onderste X bits) en kijk of DEZE CRC op die positie in je "blacklist" staat.

Dat past allemaal makkelijk in de blanking tijd. Kan je alles direct doorgeven ten koste van dat je toch het eerste reclame frame laat zien (1/30e van een seconde of zoiets).

Een hash-collision los je op door in geval van conflict het tweede frame te blacklisten.

Met zeg 32Mb ruimte voor hashes kan je 4M hashes van 8 bytes opslaan. Met zeg max 10% van je hashtable in gebruik kom je op vierhonderdduizend reclames die je kan blokkeren.

Een probleem is echter om de HDMI te decoderen. Als het goed is, is dat bestand tegen man in the middle aanvallen. Anderzijds, was eea niet gekraakt doordat er ergens een onbeveiligde code was gevonden?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Kan, maar ik zou eerder internet tv doen en dan een dns blacklisten. Daar zijn al allerlij oplossingen voor. Pi-hole is er zo eentje.

Ik zal die tools van lattice eens opzoeken, teminste zodra ik weer zin heb om met de fpga te spelen. Tis momenteel wat druk

PE2BAS

Ja dat zat ik me ook even af te vragen, er was encryptie, maar waarschijnlijk is die allang gekraakt.

In het eerste deel van mijn bericht had ik nog aangenomen dat je meerdere frames en wat geluid nodig zou hebben om de beslissing te nemen, mogelijk en aantal seconden. Als je frames gaat blacklisten, kan het inderdaad veel sneller, en heb je dus veel minder opslagcapaciteit nodig.

Een hash maken van een heel beeld kan, maar ik zou stukken negeren, zoals de bovenhoeken, waar het logo van de zender staat.

Een CRC of hash maken van veel data is wel iets wat een FPGA heel goed voor is.

Een beeld 4k video zijn ongeveer 8.3Mpixels van 3 bytes elk, dus ongeveer 25MB ruwe data. Op 30 fps krijg je elke 33ms een nieuw frame. Als we aannemen dat de FPGA op 100MHz draait (redelijk voor een mid-range FPGA, mist de code goed geschreven is), is dat dus elke clockcycle 8 bytes, dus een algoritme waar 8 bytes tegelijk in gaan. Lijkt me best haalbaar!

Je zou er ook voor kunnen kiezen om elk zoveelste pixel te gebruiken, aangezien het een digitale stream is zonder compressie krijg je elke keer exact dezelfde binaire data, lijkt me, en dan hoef je dus niet alle data te gebruiken, zolang je genoeg gebruikt dat het voldoende uniek is.

@hardbass: DNS blacklisten werkt alleen als de reclame van een andere server komt, en de speler geen dienst weigert als de reclame niet geladen kan worden.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
maartenbakker

Golden Member

Zou een FPGA goed geschikt zijn om een neuraal netwerk te implementeren? Dat is misschien een van de betere oplossingen voor patroonherkenning. Tegenwoordig noemt men dat AI en dat is trendy. Dus misschien kun je er subsidie voor krijgen...

@SparkyGSX hieronder: dat is misschien niet zo erg. Je zou er een ARM naast kunnen zetten en een stuk extra werkgeheugen. Dan kan de gebruiker hem trainen en dan achteraf de trainingsgegevens doorrekenen om een nieuw netwerk te bouwen.

[Bericht gewijzigd door maartenbakker op woensdag 6 november 2024 23:32:31 (33%)

www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."

Ja en nee, zover ik weet worden FPGAs wel veelvuldig ingezet om neutrale netwerken te berekenen, maar dan met gewichten die eerder bepaald zijn door een computer of serverfarm. Het netwerk op de FPGA kan dus niets meer leren.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op woensdag 6 november 2024 17:45:36 schreef maartenbakker:
Zou een FPGA goed geschikt zijn om een neuraal netwerk te implementeren?

Ik heb in 1988 onafhankelijk van XILINX de FPGA uitgevonden. Ik dacht dat ik een neuraal netwerk aan het maken was, maar het is precies geworden wat nu een FPGA heet.

De reden dat een FPGA niet "van nature" neurale netwerken kan doen is dat de activatie van de neuronen welliswaar binair is, maar de stimuli moeten "analoog" zijn. Analoge weegfactoren en een soort van threshold functie. Een FPGA kan dit alleen "binair".

In tegenstelling tot wat sparky zegt, denk ik dat een FPGA slecht is in het implementeren van een neuraal netwerk, zelfs als het "uitgeleerd" is. Er zijn maar zeer beperkte multiply-add units beschikbaar. Dan zijn dat er misschien een paar duizend op de heftigste FPGAs maar je kan veel beter een SIMD machine als een GPU nemen. Daar zitten orde-van-groottes meer multiply-add modules in dan in een prijs-vergelijkbare FPGA.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
benleentje

Golden Member

Analoge weegfactoren en een soort van threshold functie.

Onze hersenen zijn niet heel erg goed in accurate zaken ze werken meer op basis van kansberekening. Welke weg geeft me het meeste kans om water te vinden.

Dat is mijn beleving ook nog steeds het verschil met een computer of AI en onze hersenen. Een computer probeert heel accuraat te zijn en onze hersenen kunnen dat zeker wel maar is niet de hoofdzaak.

Als ik naar de snackbar gaat dan weet ik wat ik voor 10,- daar kan kopen maar of dat nu op 9,00 of 9,75 uitkomt boeit me niet zo.

Off-topic, maar:

Op woensdag 6 november 2024 12:34:49 schreef SparkyGSX:
De grootste vraag lijkt me hoe je reclame kunt herkennen. Ik denk dat je een aantal eigenschappen kunt gebruiken. Veranderingen in helderheid van het beeld komen ook in normale programma's voor, maar in combinatie met dynamische compressie van het geluid (daardoor lijken reclames harder) zou je dat wellicht kunnen gebruiken.

Bij veel zenders verdwijnt vlak voor een reclameblok het zenderlogo uit beeld en vaak komt er dan ook een zogenaamde ident achteraan: een stukje video met geluid dat de zender identificeert. Het lijkt me redelijk makkelijk daar op te schakelen. Het lastige is het einde: veel zenders hebben er een handje van om het reclameblok met een ident weer te laten eindigen, maar daarna nog 2 (of soms zelfs 3, volgens mij heeft vooral RTL8 daar een handje van) reclames voor eigen programma's te tonen voordat het programma echt weer verder gaat.

Op compressie werken lijkt me moeilijk: er zijn steeds meer zenders die een puinhoop maken van het geluid (Paramount en National Geographic): dan is het weer zacht, dan is het weer veel te hard en dat gaat de gehele uitzending zo door.

http://www.m-voorloop.nl --- Ik? Welnee! Ik zit nog lang niet achter de germaniums.
maartenbakker

Golden Member

@rew: klinkt logisch! Ik denk dat het dan eerder een kwestie wordt van de analoge computer opnieuw uitvinden. Of inderdaad aandelen nVidia kopen, het is natuurlijk niet voor niets dat GPU-fabrikanten zichzelf nu hypen in de AI-hoek.

@benleentje: dat kansberekening, wegen van factoren, doen neurale netwerken juist weer erg goed.

[Bericht gewijzigd door maartenbakker op donderdag 7 november 2024 20:05:52 (23%)

www.elba-elektro.nl | "The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."
benleentje

Golden Member

Op donderdag 7 november 2024 20:04:40 schreef maartenbakker:
@benleentje: dat kansberekening, wegen van factoren, doen neurale netwerken juist weer erg goed.

Ja neurale netwerken wel maar ik bedoelde dat een cpu van een pc dat niet zo goed kan.

Volgens mij is een quantum computer ook analoog te noemen.

Op donderdag 7 november 2024 16:21:33 schreef benleentje:
Een computer probeert heel accuraat te zijn en onze hersenen kunnen dat zeker wel maar is niet de hoofdzaak.

Voor de lol moet je chatgpt eens vragen wanneer Suse 7.2 is uitgekomen. En dan in een nieuw window de vraag opnieuw stellen. (laatste keer mocht ik tussen twee antwoorden kiezen welke ik het beste vond.... Alletwee bijna even fout.)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op donderdag 7 november 2024 17:05:12 schreef weardguy:
Off-topic, maar:
[...]
Bij veel zenders verdwijnt vlak voor een reclameblok het zenderlogo uit beeld en vaak komt er dan ook een zogenaamde ident achteraan: een stukje video met geluid dat de zender identificeert. Het lijkt me redelijk makkelijk daar op te schakelen. Het lastige is het einde: veel zenders hebben er een handje van om het reclameblok met een ident weer te laten eindigen, maar daarna nog 2 (of soms zelfs 3, volgens mij heeft vooral RTL8 daar een handje van) reclames voor eigen programma's te tonen voordat het programma echt weer verder gaat.

Op compressie werken lijkt me moeilijk: er zijn steeds meer zenders die een puinhoop maken van het geluid (Paramount en National Geographic): dan is het weer zacht, dan is het weer veel te hard en dat gaat de gehele uitzending zo door.

Op beeldherkenning kun je een specifieke reclame wel herkennen toch? Heck, het zou zelfs op geluidsherkenning kunnen als dat minder rekenintensief is… maar ik denk dat als je beeldherkenning gebruikt je niet eens het hele beeld nodig hebt, maar dat als je een strook of blok pixels ergens uit het midden van het beeld pakt het ook al werkt. Of ‘elke 4e beeldlijn’ ofzo. (Maargoed. Premature optimization èn waarschijnlijk een vierkanter variant van een reeds bestaand wiel heruitgevonden).

(Maargoed, idealiter zou je idd begin- en eind van een generiek reclameblok willen herkennen ipv specifiek welke reclame het is. Dat laatste is hooguit leuk voor marketeers de geautomatiseerd willen controleren of de door hen betaalde reclame inderdaad op het gewenste tijdstip uitgezonden is…)

Eluke.nl | handgetypt | De mens onderscheid zich van (andere) dieren door o.a. complexe gereedschappen en bouwwerken te maken. Mens zijn is nerd zijn. Blijf Maken. (Of wordt, bijvoorbeeld, cultuurhistoricus)

Op woensdag 6 november 2024 08:57:15 schreef hardbass:
..Waar ik wel tegenaan loop is dat ik geen goede simulatie heb. Ik lees online dat dit een onmisbare stap is bij het foutzoeken....

Simuleren "moet" inderdaad, volledig mee eens. Dat laat in 2 seconden dingen zien waar je anders een uur naar aan het zoeken bent.
De fabrikanten die ik ken hebben allemaal een ontwikkelomgeving met een simulator erbij. Intel en AMD in elk geval en Lattice had het ook altijd. Evt zou je gewoon een Modelsim kunnen gebruiken die bij de oudere versies van Quartus en ISE zaten. Dat zijn beperkte versies, maar voor de meeste hobby toepassingen prima geschikt.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein