Yanlışlıkla kullandığım Blender VSE
(aras-p.info)Blender VSE'ye tesadüfen katkıda bulunmak
- İki ay önce Blender'ın Video Sequence Editor'üne (VSE) biraz kod katkısı yapmaya başladım.
- Blender'da bir video düzenleme aracı olduğunu biliyor muydunuz? Ben de bilmiyordum.
- Video düzenleme, timeline, sequencer, color grading, ffmpeg, ses miksleme gibi konular hakkında hiçbir şey bilmiyor olmama rağmen VSE ile uğraşmaya başladım.
VSE üzerinde çalışmaya nasıl 'tesadüfen' başladım?
- Unity'nin Unite 2023 konferansını Amsterdam'da takip edip arkadaşlarımı ziyaret etmeye karar verdim.
- Konferanstan sonra yarım günlüğüne Blender merkezini ziyaret ettim ve Francesco ile Sergey bana VSE'ye katkıda bulunmak isteyip istemediğimi sordu.
- Böylece VSE üzerinde çalışmaya başladım.
Timeline çizimini iyileştirme
- VSE timeline'ı görüntünün alt kısmında yer alıyor ve aynı anda yaklaşık 3000 "strip" görünüyor.
- Timeline'ı kaydırmak ve taşımak kullanıcı arayüzünü yaklaşık 15 kare hızında güncelliyordu.
- Artık 60 karenin üzerinde güncelleniyor (#115311).
Scope'lar
- VSE, görüntü histogramı, waveform, vectorscope gibi tipik "scope"ları gösterebiliyor.
- Histogram, waveform ve vectorscope için çeşitli iyileştirmeler yapıldı.
ffmpeg tarafı
- Blender, ses/video okuma ve yazma işlemleri için ağırlıklı olarak ffmpeg kütüphanesini kullanıyor.
- Film kareleri için RGB↔YUV dönüşümünü
libswscaleile yapıyor. - Artık çoklu iş parçacığı kullanılarak RGB→YUV dönüşüm adımı daha hızlı işleniyor (#116008).
Ses yeniden örnekleme
- Ses kütüphanesinde (Audaspace) ses klibi verisinin yeniden örneklenmesi çok zaman alıyordu.
- Audaspace'e yeni bir "orta" yeniden örnekleme kalite ayarı eklendi ve render sırasında bunun kullanılması sağlandı (#116059).
Görüntü dönüşümü ve filtreleme
- VSE içinde görüntü, film, metin, sahne vb. dönüştürülebiliyor: konumlandırma, döndürme, yeniden boyutlandırma ve ek crop uygulama.
- Bu dönüşümlerin tamamı CPU'da yapılıyor ve zaten çoklu iş parçacığıyla çalışıyordu.
"Yarım piksel hataları" düzeltmesi
- Kodda birden fazla "yarım piksel hatası" vardı; bunlar çoğu durumda birbirini götürüyor ya da görünmüyordu.
- Bu hatalar düzeltildi (#116628).
Bilinear filtreleme çevresindeki saydamlık kenarlıkları
- Yalnızca Bilinear filtreleme sonuç görüntünün etrafına saydamlık ekliyordu.
- Artık Bilinear filtreleme kodundaki "saydamlığa karıştırma" kaldırıldı (#117717).
Filtreleme ekleme ve değiştirme
- VSE strip dönüşümlerinde Cubic filtreleme seçeneği yoktu.
- Artık VSE içinde iki tür Cubic filtreleme seçilebiliyor (#117100, #117517).
- "Auto" filtre seçeneği eklendi ve varsayılan olarak ayarlandı (#117853).
VSE efektlerini optimize etme
- Gerçek film veri kümelerinde pek çok efekt kullanılmıyor, ancak kodda bazı şeyler fark edip optimize ettim.
- Optimizasyonların çoğu çoklu iş parçacığı sayesinde yapıldı.
Bütün bunlar render süresi açısından ne anlama geliyor?
- Blender Studio'nun sağladığı üç veri kümesinde, VSE filmlerinin nihai render süresi PC'de yaklaşık 2 kat hızlandı.
Gerçek çalışma süreci hakkında düşünceler
- Yukarıdaki her şeyin iki aylık yarı zamanlı çaba için "iyi miktarda iş" olup olmadığından emin değilim.
- Geliştirici olarak benim bu alan ya da kod tabanı hakkında hiçbir şey bilmiyor olmama rağmen sonuç oldukça iyi görünüyor.
- Toplam 37 pull request tamamlandı, incelendi ve birleştirildi.
Sırada ne var?
- Blender 4.1 beta aşamasına geçti ve işlevsel olarak "tamamlandı".
- Blender 4.2 çalışmaları başlıyor ve VSE ile çalışmaya devam etmeyi planlıyorum.
GN⁺ görüşü:
- Bu yazı, Blender'ın VSE'sindeki iyileştirmeleri ve geliştirme sürecini paylaşarak açık kaynak projelere katkı vermenin ne kadar önemli olduğunu gösteriyor.
- Geliştiricinin kendi uzmanlık alanı dışındaki bir alanda da anlamlı katkılar yapabileceğini vurgulayarak yeni meydan okumaları teşvik eden olumlu bir mesaj veriyor.
- Yazı, yazılım geliştirmede optimizasyon ve performans artışlarının önemini vurguluyor; bu iyileştirmelerin gerçek kullanıcı deneyimi ve render süreleri üzerindeki etkisini somut örneklerle açıklıyor.
1 yorum
Hacker News görüşleri