Sei un Senior Software Architect e Lead Engineer. Il tuo obiettivo è estendere l'applicazione desktop standalone "Titano" integrando un set di moduli e funzionalità avanzate per la gestione di scenari time-lapse complessi e la produzione cinematografica.
REQUISITO FONDAMENTALE E VINCOLO STRUTTURALE:
Tutte le funzionalità aggiuntive DEVONO ESSERE SVILUPPATE COMPLETAMENTE "IN-HOUSE", SENZA UTILIZZARE LIBRERIE TERZE, PACCHETTI ESTERNI O UTILITY CLI DI TERZE PARTI. Tutta la matematica dei vettori, l'analisi di segmentazione, le interpolazioni di bilanciamento del colore, le trasformazioni geometriche sub-pixel e la composizione dei buffer devono essere implementate nativamente sfruttando unicamente le API del sistema operativo e del linguaggio.
Requisiti Funzionali dei Moduli Avanzati
-
Gestione Transizioni "Holy Grail" (Day-to-Night) e Color Smoothing
- Implementare un sistema di analisi nativa del bilanciamento del bianco e della temperatura colore basato sui metadati e sull'analisi spettrale dei fotogrammi.
- Sviluppare un algoritmo di interpolazione non lineare per ammorbidire i salti improvvisi di ISO, tempi di scatto e bilanciamento dei bianchi tipici dei passaggi giorno-notte.
- Applicare una correzione graduale della tinta senza introdurre banding o artefatti di compressione nel dominio del colore.
-
Motore di Virtual Camera Motion 2D (Motion Control Digitale)
- Sfruttare la risoluzione nativa delle immagini per consentire ritagli operativi (cropping) e movimenti di macchina virtuali in output (es. 4K/8K).
- Realizzare un sistema di keyframing per gestire movimenti di Pan, Tilt e Zoom.
- Implementare curve di accelerazione e decelerazione (easing Bézier custom) per garantire che i movimenti virtuali risultino fluidi e naturali.
-
Deflicker Selettivo per Regioni (Region-Based Deflicker)
- Implementare un algoritmo di segmentazione automatica del fotogramma basato sull'analisi dell'istogramma e del gradiente (es. separazione tra regione cielo e regione terra).
- Calcolare curve di luminanza indipendenti per le diverse aree dell'immagine.
- Consentire un deflicker dinamico selettivo per evitare che il transito di elementi scuri isolati (es. nuvole dense) alteri l'esposizione delle zone statiche del paesaggio.
-
Sistema di Accumulo e Filtraggio Temporale (Dynamic Stacking)
- Implementare una modalità di filtraggio basata sulla mediana temporale su una finestra di
Nfotogrammi per identificare e rimuovere automaticamente elementi di disturbo occasionali (es. persone, veicoli o uccelli). - Implementare una modalità di sovrapposizione a massima luminanza (Star Trails) per fondere in streaming i picchi di luce degli scatti notturni, generando scie stellari continue.
- Implementare una modalità di filtraggio basata sulla mediana temporale su una finestra di
-
Stabilizzazione Sub-Pixel per Micro-Urti
- Sviluppare un algoritmo di autocorrelazione di fase e matching di pattern a bassa latenza per identificare micro-spostamenti accidentali tra fotogrammi adiacenti (es. vibrazioni da vento sul treppiede).
- Calcolare la matrice di trasformazione ed eseguire il riallineamento geometrico con precisione sub-pixel sui buffer d'immagine prima del rendering.
-
Gestione della Velocità e Time-Ramping Non Lineare
- Creare un sistema di rimappatura temporale basato su spline grafiche.
- Permettere l'accelerazione o il rallentamento di specifiche porzioni della sequenza (es. velocizzare la fase statica e rallentare la fase centrale del tramonto) mantenendo un frame rate di output fisso e sintetizzando i fotogrammi necessari tramite il motore di optical flow nativo.
Esecuzione e Integrazione Architetturale
Procedi nell'integrazione di questi moduli rispettando la seguente sequenza:
- Sviluppa l'algoritmo di autocorrelazione di fase per la stabilizzazione sub-pixel.
- Implementa la segmentazione dell'immagine e il deflicker selettivo regionale.
- Costruisci il modulo di interpolazione per le transizioni "Holy Grail" e la gestione della temperatura colore.
- Sviluppa le trasformazioni geometriche per il Virtual Camera Motion (Pan/Tilt/Zoom) e il Time-Ramping.
- Integra le modalità di stacking temporale (Mediana/Anti-Fantasmi e Maximum/Star Trails) nella pipeline di streaming.
- Aggiorna l'interfaccia utente con i controlli grafici dedicati (curve spline, keyframe e impostazioni di regione).