1 puan yazan GN⁺ 2024-02-09 | 1 yorum | WhatsApp'ta paylaş

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ü libswscale ile 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üşü:

  1. 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.
  2. 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.
  3. 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

 
GN⁺ 2024-02-09
Hacker News görüşleri
  • Bir kullanıcı, kariyerindeki en büyük hatanın, benzersiz projeler için matematiksel çözümler bulmakla ortalama sonuçlar üreten ücretli projeler arasında denge kuramamak olduğunu belirtiyor. Ücretsiz yaptığı bir iş için ödeme alma fırsatı doğduğunu, ancak sonunda o iş üzerinde hiç çalışmamış olduğunu paylaşıyor.
  • Başka bir kullanıcı, aslında Unity’de çok deneyim kazandıktan sonra Blender’a katkıda bulunduğu bir örnekten söz ediyor; özellikle görüntü işleme aşamasını optimize ederek işlem hızını 4 kat artıran değişikliği övüyor.
  • Bir kullanıcı, Aras’ın çeşitli açık kaynak grafik projelerine katılıp büyük çaplı hız artışları ve iyileştirmeler yaptıktan sonra başka projelere geçmesini son birkaç yılın en sevdiği eğilimi olarak gösteriyor.
  • Başka bir kullanıcı, tercih ettiği müzik çalar olan Musicbee’nin açık kaynak olmamasından dolayı üzüldüğünü, kaynak kodu açık olsaydı boş zamanlarında küçük sorunları düzeltmeye katkıda bulunmak isteyeceğini söylüyor.
  • Bir kullanıcı, 2020’den beri video düzenleme için Blender VSE kullandığını ve bunun Linux üzerindeki en kararlı ve en zengin özelliklere sahip video düzenleyici olduğunu düşündüğünü belirtiyor.
  • Başka bir kullanıcı, podcast’i için tüm araçların açık kaynak olmasını istediğini, ancak Blender’da chroma key içeren bir mp4 sekansını render etmenin 10 saat sürmesi üzerine DaVinci Resolve’a geçtiğini paylaşıyor.
  • Bir kullanıcı, gönderi başlığının ne anlama geldiğini anlamak için yardım istiyor ve bunun meme tarzı bir ifade olup olmadığını soruyor.
  • Başka bir kullanıcı, Blender 3D programının herhangi bir bölümünü daha da hızlandırmanın çok zor olacağını, çünkü bunun zaten en hızlı açılan ve en hızlı tepki veren 3D uygulaması olduğunu söylüyor.
  • Bir kullanıcı, başlığın daha açık olacak şekilde değiştirilmesini istiyor.
  • Son olarak bir kullanıcı, VSE’yi ilk kez kullanma deneyiminin pek iyi olmadığını belirtiyor ve kendi deneyimine dair bir bağlantı paylaşıyor.