Android'de 60 FPS Segmentasyon: 16.67ms'lik Donanım Yarışı
Android'de 60 FPS gerçek zamanlı video segmentasyonu için 16.67ms bütçesi, NPU/GPU/DSP mimarisi, AICore ve model optimizasyonu incelemesi.
Android üzerinde gerçek zamanlı video segmentasyonu (ör. AR uygulamaları, video düzenleyiciler) 60 FPS hedeflediğinde geliştiricilerin elinde kare başına yalnızca 16.67 milisaniye kalır. Bu süre; kamera yakalama, YUV-RGB ön işleme, NPU/GPU üzerinde inference ve son işleme/render aşamaları arasında paylaştırılmak zorundadır ve herhangi bir aşamadaki gecikme tüm hattı tıkayarak kare kaybına (jank) yol açar.
Bu darboğazı aşmak için modern SoC'ler CPU yerine NPU, GPU ve DSP'den oluşan heterojen bir hesaplama modeli kullanır: NPU sistolik dizi mimarisiyle tensör işlemlerini bellek darboğazını aşarak hızlandırırken, GPU compute shader'larla piksel bazlı ön/son işlemeyi üstlenir. Google'ın AICore girişimi ise model yükünü uygulama içinden işletim sistemi seviyesine taşıyarak paylaşımlı bellek, dinamik model güncellemeleri ve donanım soyutlaması sağlar.
Model tarafında ise quantization (FP32'den INT8'e geçiş) ve structured pruning gibi teknikler, doğruluktan ciddi ödün vermeden tensör boyutlarını küçültüp NPU üzerinde doğrusal hızlanma sağlar. Kotlin tarafında ise coroutine ve Flow tabanlı, non-blocking bir mimari; ana iş parçacığını bloklamadan NPU/GPU sürücülerinin özel threading gereksinimlerini karşılamak için zorunludur.
Bu makale, Android geliştiricileri için gerçek zamanlı bilgisayarla görü hatlarının fiziksel sınırlarını, donanım hızlandırma stratejilerini ve sistem seviyesi AI mimarisine geçişin pratik sonuçlarını ele alıyor.