deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Android donanım VP9 kodlayıcıları uzamsal SVC yapılandırmalarını kabul ediyor ama yalnızca tek katman kodluyor

Android donanım VP9 kodlayıcıları L3T3 gibi uzamsal SVC yapılandırmalarını kabul ediyor ancak tek düz bir akış üretiyor; WebRTC sunucuları bırakacak katman bulamıyor. Hata Samsung ve Pixel cihazlarında tespit edildi.

Android donanım VP9 kodlayıcıları uzamsal SVC yapılandırmalarını kabul ediyor ama yalnızca tek katman kodluyor

Kodlayıcılar ne yapıyor

dev.to'da yayımlanan bir hata ayıklama yazısı, Android'in donanım VP9 kodlayıcılarının Ölçeklenebilir Video Kodlaması'nı (SVC) nasıl ele aldığına dair bir kusuru belgeliyor. SVC, mobilde simulcast'a alternatif olarak tanıtılıyor: tek bir kodlama, çeşitli çözünürlük ve kare hızları içeren tek bir bit akışı üretiyor ve video sunucusu her izleyicinin bağlantısına uyması için katmanları bırakıyor.

Rapora göre Android'in donanım VP9 kodlayıcıları bu sözleşmeye uymuyor. Kodlayıcıyı L3T3 — üç uzamsal katman çarpı üç zamansal katman — için yapılandırırsanız, modu hiçbir şikayet olmadan kabul ediyor. Geri dönen ise genellikle en üst çözünürlükte tek düz bir akış oluyor ve alt uzamsal katmanlar hiçbir zaman çıktıya girmiyor.

Hata nasıl ortaya çıkıyor

Belirti yanıltıcı. Sunucu üç kalite kademesi bekliyor ve yalnızca bir tane bulduğunda akışı hatalı sayıyor — oysa anlatılan vakalarda ağ çoğu zaman sağlıklıydı. Raporun yazarları aynı davranışı Qualcomm ve Tensor çiplerinde, hem Samsung hem Pixel cihazlarında gözlemledi; yani bu tek bir satıcının yazılım kusuru değil. Özetleri şu: Android'de donanım VP9 zamansal SVC'yi işlerken, uzamsal katmanlar yalnızca kalitesi düşürülmek yerine tamamen atlanıyor.

En açık üretim sinyali zamanlamada. Arama kalitesi tek izleyiciyle ayakta duruyor, ikinci biri katıldığı anda çöküyor — tam da sunucunun izleyici başına katman bırakmaya başlayıp bırakacak bir şey olmadığını fark ettiği anda. Yazının tavsiyesi, bağlantıyı suçlamadan önce donanım kodlayıcının gerçekten birden fazla uzamsal katman üretip üretmediğini kontrol etmek.

Önceden sormanın yolu yok

Tespit daha derin bir sorun. MediaCodec desteklenen çözünürlükleri, bit hızlarını, profilleri ve zamansal şemaları raporluyor ve rapor, Android 17'deki getSupportedLayeringSchemas() fonksiyonunun hâlâ yalnızca zamansal l1tN seçeneklerini listelediğini belirtiyor. API'de uzamsal SVC'nin belirli bir cihazda gerçekten çalışıp çalışmadığını bildiren hiçbir şey yok. Tek güvenilir kontrol, kodlanmış bit akışının kendisini incelemek; yazarların sonunda yaptığı da buydu.

Yazılım dengesi

Rapor, libvpx üzerinden yazılım VP9'un gerçek uzamsal katmanlar ürettiğini doğruluyor. Bedeli ise işlemci yükü ve pil tüketimi; bu da onu telefonlarda kötü bir varsayılan yapıyor. Android görüntülü arama geliştiren ekipler bu yüzden üç seçenek arasında seçim yapmak durumunda: yazılımda doğru SVC davranışı, yalnızca zamansal ölçeklenebilirlikle sınırlı donanım kodlama ya da simulcast'ı yeniden düşünmek — SVC'nin mobilde yerini alması hedeflenen tekniğin ta kendisi.

Neden önemli

SVC'nin cazibesi, tek bir kodlamanın her izleyiciye hizmet edebilmesinde; bu da işlemci ve pil bütçesi dar olan cihazlarda en çok önem taşıyor. Bir platformun donanım kodlayıcıları yerine getiremeyecekleri bir yapılandırmayı sessizce kabul ediyorsa ve hiçbir API bu boşluğu ortaya koymuyorsa, hata net bir kurulum hatası yerine kafa karıştırıcı bir arama ortası kalite çöküşü olarak görünüyor. dev.to raporundan pratik ders şu: başarılı bir kodlayıcı yapılandırmasını doğrulanmamış sayın, katman sayılarını bit akışından doğrulayın ve SVC'nin Android'de çalıştığını kanıtlamak için asla tek izleyicili teste güvenmeyin.

  • #webrtc
  • #android
  • #vp9
  • #video-encoding
  • #svc