Your cart is currently empty!
‘It’s technology sir, but not as we know it’
Videoalgoritmes worden vaak in software ontwikkeld en getest door ’s nachts een deel van een film te processen. ’s Ochtends kan dan het resultaat worden afgespeeld om vervolgens aanpassingen te doen en de volgende dag het resultaat weer te bekijken. Als dit algoritme productrijp is, wil marketing het zo snel mogelijk als nieuwe feature verwerken in de volgende productgeneratie.
Op dat moment komen de hardware- en fpga-designers erbij om de C++-code om te zetten in hardware. Voor de algoritme- en softwareontwikkelaars lijkt dat eeuwen te duren; toen ik een for-loop van vijf regels referentiecode in drie weken had geïmplementeerd in de fpga, keken mijn softwarecollega’s me raar aan.
Dan moet je hun uitleggen dat je in C++ wel een pointer naar het geheugen kunt gebruiken om data te lezen, te bewerken en terug te schrijven, maar dat je in hardware die data werkelijk naar de block-ram van je fpga moet halen voordat je hetzelfde kunt. En ‘even een videoframe’ aflopen gaat ook niet in hardware. Hooguit kun je een aantal videolijnen opslaan in je fpga. En dan heb ik het nog niet eens over floating point-berekeningen, een deling uitvoeren of even een bestand wegschrijven naar een harddisk. C++-code is geen hardwarebeschrijving, maar een algoritme in een sequentiële taal.