Newsmeldung von slashCAM:
FiLMiC das Unternehmen hinter den mobilen App FiLMiC Pro hat angekündigt, dass es eine hocheffiziente Bild-Remapping-Technologie namens Cubiform patentiert hat, die 4,75-...
Hier geht es zur Newsmeldung auf den slashCAM Magazin-Seiten:
FiLMiCs Cubiform soll Videoeffekte deutlich beschleunigen
Antwort von mash_gh4:
im machine lerning umfeld ist ein derartiges compilieren bzw. optimierendes ausführen und zusammenfassen von operationen mit ganz ähnlich gelagerten mehrdimensionalen datenarrays (tensors) mittlerweile nichts ungewöhnliches mehr.
begonnen hat das mit
halide, in
tvm wurde es dann massiv ausgebaut, und mittlerweile gibt es auch noch einige weitere alternativen in den verschiedenen ML-frameworks, die ähnliches bewirken. allerdings erfolgt dort die beschleunigung weniger über LUTs als über die automatische anwendung von optimierungen bzw. umformulierung der ausführungsanweisungen, wie sie sonst hauptsächlich in übersetzungslösungen für programmiersprachen zum einsatz kommen.
mich wundert es immer wieder, dass derartiges in den heutigen videoprogrammen nicht stärker genutzt wird.
Antwort von srone:
der wesentlichste faktor scheint, wie lange dauert es die "lut" zu berechnen? zb bei Leistungs-intensiven dritt-effekten, wie zb tiffen dfx - pro mist etc, ist das dann besser/schneller wie per se user-cachen in resolve?
oder nur alter wein in neuen schläuchen, als plugin für andere nles?
lg
srone
Antwort von mash_gh4:
srone hat geschrieben:
der wesentlichste faktor scheint, wie lange dauert es die "lut" zu berechnen? zb bei Leistungs-intensiven dritt-effekten, wie zb tiffen dfx - pro mist etc, ist das dann besser/schneller wie per se user-cachen in resolve?
es ist halt ein völlig anderer lösungsweg als zwischenresultate zu cachen.
ich glaube eigentlich schon, dass das in einigen fällen tatsächlich ein großes beschleunigungspotential birgt.
allgemeiner gesprochen geht es hier ja um strategien, ketten von rechenoperation zu vereinfachen bzw. in möglichst vorteilhafter weise zu zusammenzulegen
(=fusion). das kann in verarbeitungspipelines, wo oft sehr viele ähnliche operationen hintereinader wiederholt werden, die sich manchmal auf wenige tatsächlich nötige rechenschritte zusammenkürzen lassen, durchaus spürbare vorteile bringen.
es ist ja nicht ganz neu, dass man derartiges mit LUTs zu bewerkstelligen versucht, nur gibt's da halt die bekannten probleme mit der oft reichlich unbefriediegenden umsetzungsgenauigkeit. anderseits wird aber auch gerne übersehen, wie problematisch sich die rundungsfehler in den ansonsten genutzten ketten von hintereinander gereihten operationen auswirken können.
im machine learning umfeld hat sich letzteres problem so gravierend ausgewirkt, das in den urspünglichen formen des
deep lernings nach etwa ein-zwei dutzend berechnungsschichten die rechenfehler größer als der zusätzliche prognosegewinn war, bis plötzlich ein ganz junger forscher einen trick ausprobiert hat, überall dort, wo keine auffälligen veränderungen mehr stattfinden bzw. faktisch nur mehr identitäts-relationen vorliegen, abkürzungswege ins netz der berechnungen einzubauen. die damit erfundenen
Residual neural networks haben damals eine geradezu bahnbrechende verbesserung und erweiterbarkeit einiger lernmodelle eröffnet.
gut, die berechnungen und auswirkungen von rundungsfehlern, mit denen wir es hier in praxis in unseren videoprocessing pipelines zu tun haben, sind damit natürlich nichteinmal ansatzweise vergleichbar, trotzdem handelt es sich dabei um eine problematik, die man nicht völlig außer acht lassen sollte.
Antwort von TheBubble:
Es ist kein Problem, alles mögliche über LUTs vorzuberechnen, nur leider werden sie irgendwann unglaublich groß.