AV1@Scale: Film Grain Synthesis'in Uyanışı
(netflixtechblog.com)- Netflix, AV1'in Film Grain Synthesis(FGS) akışlarını dünya geneline yayarak, film grain dokusunu korurken akışta veri kullanımını azaltmayı hedefliyor
- FGS, grain'i olduğu gibi sıkıştırmak yerine, grain'i kaldırılmış görüntüyü ve grain model parametrelerini gönderip oynatma sırasında blok bazında yeniden sentezliyor
- They Cloned Tyrone örneğinde, standart AV1'in 8274 kbps'ine karşı AV1 FGS 2804 kbps ile güçlü film grain içeren sahnelerde yaklaşık %66 bit hızı düşüşü sağlıyor
- Yaklaşık 300 başlık üzerinde yapılan değerlendirmede 1080p ve üzeri için ortalama bit hızı %36 azaldı, ancak 1080p altındaysa downscale nedeniyle gürültü azaldığından etki yaklaşık %10 seviyesinde kaldı
- Dağıtımdan önce yapılan A/B testlerinde başlangıç bit hızı %24, ortalama bit hızı %31,6, yeniden arabelleğe alma %10 ve başlangıç gecikmesi %10 azaldı; desteklenen cihazlarda Mart 2025'ten itibaren geniş çaplı uygulama sürüyor
Netflix'in AV1 Film Grain Synthesis genişlemesi
- Netflix, kısa süre önce AV1 Film Grain Synthesis(FGS) akışlarını dünya çapındaki üyelerine daha geniş kapsamda sunmaya başladı
- FGS, AV1 standardının ilk dönemlerinden beri dahil olsa da Netflix'in 2021'deki ilk AV1 codec lansmanı sırasında yalnızca sınırlı sayıdaki başlıkta etkinleştirilmişti
- Bu genişlemenin amacı, film grain'in sanatsal bütünlüğünü korurken veri verimliliğini artırmak
- Film grain, klasik filmlerin dokusunu, gerçekçilik hissini ve nostaljik tonunu oluşturan bir unsur; ancak rastgeleliği yüksek olduğu için geleneksel sıkıştırmada dosya boyutunu küçültmek ile grain'i korumak arasında bir ödünleşim gerekiyordu
- Dijital videolarda da kamera sensör gürültüsü veya post prodüksiyonda bilinçli olarak eklenen grain bulunabildiğinden sıkıştırma daha da zorlaşıyor
AV1 FGS'in grain'i işleme yöntemi
- AV1 FGS, grain'i doğrudan sıkıştırmak yerine önce orijinal videodan grain'i kaldırılmış denoised video'yu kodluyor
- Grain'in şekli ve yoğunluğunu modelleyen parametreler, sıkıştırılmış video verisiyle birlikte iletiliyor ve oynatma sırasında yeniden sentezleniyor
- AV1 standardı, grain kaldırma yönteminin kendisini belirli bir yaklaşıma zorlamadığından kullanıcı istediği denoiser'ı seçebiliyor
- Oynatma aşamasında film grain, tüketici cihazlarında sorunsuz çalışacak şekilde optimize edilmiş blok tabanlı yöntemle yeniden oluşturuluyor
- Daha ayrıntılı açıklama için orijinal makaleye bakılabilir
Grain deseni ve yoğunluk modeli
-
Film Grain Pattern
- Otoregresif model(auto-regressive model), film grain desenini kopyalıyor
- Temel parametreler AR katsayılarıdır ve kaynak video ile denoised video arasındaki kalıntıdan tahmin edilebilir
- Bu model, grain örnekleri arasındaki mekânsal korelasyonu yakalayarak orijinal gürültü karakterini korur
- AR katsayıları
{ai}ayarlanarak grain daha kaba ya da daha ince hale getirilebilir - Bu katsayılarla 64x64 noise template oluşturulur ve oynatma sırasında rastgele 32x32 patch'ler seçilip çözümlenmiş videoya eklenir
-
Film Grain Intensity
- Ölçekleme fonksiyonu, parlaklık koşullarına göre grain'in görünümünü kontrol eder
- Bu fonksiyon kodlama sırasında tahmin edilir ve piksel değerleri ile gürültü yoğunluğu arasındaki ilişkiyi parça parça doğrusal fonksiyon olarak modeller
- Videonun parlaklığı ve rengine göre grain yoğunluğu ayarlanarak orijinal görüntü görünümüne daha yakın bir yeniden üretim sağlanır
Görüntü kalitesi iyileşmesi ve bit hızı tasarrufu
- Netflix, They Cloned Tyrone filminden bir kareyi örnek göstererek standart AV1 ile AV1 FGS'i karşılaştırıyor
- Standart AV1 8274 kbps, AV1 FGS ise 2804 kbps ile yaklaşık %66 bit hızı düşüşü sağlıyor
- Güçlü film grain içeren bu örnekte standart AV1'de DCT benzeri desenli bozulmuş gürültü görülebilirken, FGS sürümü daha düşük bit hızında bile film grain bütünlüğünü koruyor
- Sentezlenen gürültü, sıkıştırma artefaktlarını maskeleyerek görsel olarak daha iyi bir deneyim sağlayabiliyor
- Standart AV1 akışında ve sentezlenmiş gürültü içermeyen AV1 FGS akışında sıkıştırma artefaktları görülebiliyor
- Grain sentezi uygulanan AV1 FGS akışı, insan görsel sistemindeki kontrast maskelemesi sayesinde bazı sıkıştırma artefaktlarını gizliyor
Kalite ölçümünün sınırları ve katalog değerlendirmesi
- Netflix'in şu anda film grain sentezi için özel bir kalite modeli bulunmuyor
- Kaynak video ile çözümlenmiş videodaki gürültü farklı piksel konumlarında ortaya çıktığı için PSNR veya VMAF gibi piksel düzeyi karşılaştırma yöntemleri kalite puanını düşük verebilir
- İç değerlendirmelerde görsel kalite iyileşmesi ve teknik değer doğrulandı
- Farklı grain seviyelerine sahip yaklaşık 300 başlık seçilerek AV1 FGS'in etkisi değerlendirildi
- 1080p ve üzeri çözünürlüklerde ortalama bit hızı %36 azaldı
- 1080p altı çözünürlüklerde bit hızı düşüşü yaklaşık %10 ile sınırlı kaldı
- Düşük çözünürlükte etkinin sınırlı olmasının muhtemel nedeni, downscale sürecinde gürültünün filtrelenmesi
- FGS kodlama aracı etkinleştirildiğinde bitstream'e sözdizimsel ek yük sürekli ekleniyor
A/B testlerinde gözlenen akış etkisi
- Netflix, dağıtımdan önce AV1 FGS'in etkinleştirilmesinin genel akış deneyimine etkisini A/B testiyle değerlendirdi
- Test sonuçları daha akıcı ve daha kararlı bir QoE'ye işaret etti
- Gözlenen iyileştirmeler şöyle:
- Oynatma başlangıcındaki bit hızı %24 azaldı ve ortalama bit hızı %31,6 düştü; böylece ağ bant genişliği gereksinimi ve indirilen akışın depolanma ihtiyacı azaldı
- Oynatma hata oranı yaklaşık %3 azaldı
- Yeniden arabelleğe alma sayısı %10 azaldı ve yeniden arabelleğe alma süresi %5 azaldı
- Başlangıç gecikmesi %10 azaldı; daha düşük bit hızı sayesinde cihazların hedef tampon seviyesine daha hızlı ulaşmış olması muhtemel
- Belirgin bit hızı düşüşleri %10 azaldı ve kullanıcıların oynatma konumunu ayarlamak için harcadığı süre de %10 azaldı
- 4K destekli cihazlarda izleme süresinin yaklaşık %0,7'si 1080p veya altından 2160p'ye kaydı
- Bu çözünürlük kayması, geçiş noktalarındaki bit hızı düşüşü sayesinde oturum sırasında en yüksek çözünürlüğe ulaşmanın kolaylaşmasından kaynaklandı
Dağıtım durumu ve sonraki planlar
- Netflix, Mart 2025'ten bu yana FGS'i geniş ölçekte devreye alıyor ve şu anda pek çok kullanıcı desteklenen cihazlarda FGS etkin akışları izleyebiliyor
- FGS akış deneyimi için örnek olarak The Hot Spot, Kung Fu Cult Master, Initial D, God of Gamblers II, Baahubali 2: The Conclusion, Dept. Q gösteriliyor
- Bazı başlıklarda yeni FGS akışını doğrudan deneyimlemek için ayarlar menüsünden HDR'yi kapatmak gerekebilir
- Bir sonraki yazıda Netflix'in video kodlama hattında bu işi nasıl hayata geçirdiği ve hangi içgörüleri elde ettiği ele alınacak
1 yorum
Hacker News yorumları
Sentezlenen gürültünün, özgün gürültünün içerdiği ayrıntı ve bilgiyi taşıyamayabileceği noktası gözden kaçırılıyor.
Gerçek gürültü içeren yüksek kaliteli bir kodlamaya bakıldığında, durağan görüntüden videoya geçildiğinde çözünürlük şaşırtıcı ölçüde artar. Gürültü, sinyalin üzerinde dans ediyormuş gibi görünür ve 24fps'de arkasındaki sinyal hâlâ net biçimde görülür.
Buna karşılık, durağan kareler bazında gürültüyü atıp sonra “estetik olarak” benzer yapay gürültüyü tekrar eklerseniz, özgün ayrıntılar geri getirilemez ve 24fps'de izlendiğinde temel olarak daha bulanık hale gelir. Eski, bol gürültülü filmlerde ayrıntı farkı 2 katına kadar çıkabilir.
H.265 ya da AV1 hareketi hesaba katarak birden çok önceki ve sonraki kareye birlikte bakıp “gürültüsü giderilmiş” bir kare oluşturuyorsa, teorik olarak zaman ekseni boyunca tüm ayrıntının sinyalini bulup kodlayabilir; ama pratikte bunu yapıp yapmadığını bilmiyorum. Yanılıyorsam öğrenmek isterim.
Esas nokta şu: gürültü giderme ve sentez karşılaştırması durağan görüntülerle yapılmamalı. Ayrıntıların atılıp atılmadığı ya da korunup korunmadığı, gerçek videolar yan yana karşılaştırılarak görülmeli. Gürültü sadece gürültü değildir; aynı zamanda ayrıntıdır.
Estetik açıdan AV1'in sentezlenmiş greninin, özgün videodaki parçacık boyutunu dikkate almadığı anlaşılıyor. Bu yüzden eski filmlerdeki büyük gümüş halojenür kristallerinden gelen kalın gren, sentezde ince gren gibi görünüp yapay durabilir. İyi bir film gürültü gidericisi bunu hafifletebilir.
Ayrıca filmin ayrılmış renk bileşenlerini düzgün modellemiyor; ancak Netflix'in video kaynakları zaten çoğu zaman chroma subsampling uygulanmış olduğundan bunun büyük bir sorun olmadığı söyleniyor: https://norkin.org/pdf/DCC_2018_AV1_film_grain.pdf
Bu alanı sadece yüzeysel olarak okudum, dolayısıyla yanılıyor olabilirim.
Zamansal tarafı açıklamak için geleneksel film projektörünü düşünmek yeterli. Karelerin arasında çok kısa bir süre boyunca tamamen karanlık görürsünüz. Bu karanlığa “gürültü” denebilir; o anda kalırsanız özgün sinyali hiç göremezsiniz.
Ancak görsel sistemimiz belli ölçüde zamansal ortalama aldığı için bu titreşimi neredeyse fark etmeyiz (https://en.wikipedia.org/wiki/Flicker_fusion_threshold). Gürültü ve gren de benzer biçimde algılanıyor gibi; kararlı sinyal/görüntü bölümlerine kıyasla daha az öne çıkıyorlar.
Astrofotoğrafçıların gürültülü görüntüleri üst üste yığarak sinyal-gürültü oranı yüksek bir görüntü elde etmesi gibi, beynin de bir ölçüde bunu yaptığını düşünüyorum. Bu, olmayan ayrıntıları halüsinasyonla ürettiği anlamına gelmiyor; kaydedilmiş gürültünün zaman içinde ortalamaya dönmesi ve bu ortalamanın gerçek sinyali daha net temsil etmesi anlamına geliyor. Elbette sistematik/rastgele olmayan gürültü nedeniyle kusursuz değil, ama çoğu zaman daha az önemli.
Yalnızca tekil kareleri işleyen gürültü giderme algoritmaları bu bağlamdan yoksun olduğundan ayrıntı kaybeder ya da tahminle düzeltmeye çalışır. AV1 belirli bir algoritmayı dayatmadığı için, teorik olarak akıllı bir algoritma zamansal bağlamı kullanarak ek ayrıntıları koruyabilir.
Birkaç statik karenin ortalaması alınırsa değişmeyen sinyal korunur, rastgele gürültü birbirini götürür ve sinyal-gürültü oranı iyileşir. Gürültünün kendisini korumak faydalı değildir.
Görülen etki, özgün gren hareketine yönelik estetik bir tercih olabilir ya da yumuşatma/düşük geçiren filtreleme gibi güçlü sıkıştırma artefaktları içeren düşük bant genişlikli içerikle tüm ayrıntıyı koruyan yüksek bant genişlikli sürümün karşılaştırılmasından kaynaklanıyor olabilir. Bu, üzerine eklenen grenden bağımsızdır.
Gürültü eklemenin değeri felsefi olarak tartışmaya açık, ancak buradaki örneğin sorunu, gürültü giderme sürecinin her şeyi aşırı bulanıklaştırması; bu yüzden hem gürültüsü giderilmiş sürüm hem de sentetik grenli görüntü, orijinalden belirgin biçimde daha az keskin görünüyor.
Grenin kendisi de fazla basit bir gürültü gibi görünüyor; gerçek film greni gibi değil.
Sonuçta orijinal gren daha geniş alanlara “yayılıp” bulanık görünür; keskin greni kodlamaya çalışırken gerçek sahnenin keskinliği de kaybedilir.
Film greni sentezi, bant genişliğinin sınırlı olduğu streaming’de mantıklıdır. Ancak örnekteki sentetik grenin pek gren gibi görünmediğine katılıyorum. Ayrıca gürültü gidermenin miktarına ve yöntemine bağlı olarak sahne detayları bulanıklaşabilir.
Film simülasyonunu açıp kapatmak için bir seçenek sunulsa iyi olurdu.
En sevdiğim filmlerden biri olan The Holdovers, film simülasyonunu çok iyi yaptı. 70’lerde geçtiği için o dönemin filmleri gibi görünmeye çalışıyor.
Benim gözüme harika göründü, ama gerçek bir film meraklısı doğru olmayan pek çok şeyi fark edecektir.
Yakın gelecekte Netflix’in bazı post efektlerini istemci tarafında işlemesi mümkün olabilir gibi görünüyor. Renk görme bozukluğunuz varsa buna uygun bir mod kullanmak, sahte greni sevmiyorsanız kapatmak gibi.
Dikkat edilmesi gereken birkaç nokta var.
Durağan kareler, video kalitesini değerlendirmek için pek iyi bir yöntem değil.
Teorik olarak kusursuz[1] bir gürültü giderme filtresi bile her zaman orijinal kaynaktan daha az detaylı görünecektir. Çünkü beyin/göz sistemi, bulanık bir görüntüye kıyasla gürültülü bir görüntüde daha fazla detay üretir.
[1] Burada kusursuz derken kastedilen, gren olmayan detayları %100 korumasıdır; gürültü yüzünden kaybolan detayları sihirli biçimde geri getirmesi değil.
Bonus olarak, birçok izleyici bunu kapatabilecekleri bir seçeneği memnuniyetle karşılar.
Buradaki asıl mesele “ölçekli uygulama” kısmı. Film greni sentezi bir süredir genel AV1 encoder’larında zaten vardı, ancak sorunlardan kaçınmak için belli ölçüde manuel ayar gerektiriyordu.
Bu yüzden prodüksiyon ortamlarında yalnızca çok sınırlı kataloglarda ya da özellikle önemli yapımlarda kullanılıyordu. Burada bu sorunu nasıl aştıklarını ayrıntılı olarak açıklamıyorlar, ancak daha geniş dağıtıma girmesi sevindirici.
Greni sevmeyen tarafa gelirsek, her şeyde doğal olarak bir miktar gürültü ya da gren vardır. En iyi dijital sensörlerde de vardır, hatta gözlerde bile.
Basit bir estetik efektten daha fazla işe yarar. Algılanan keskinliği artırır; renk bantlaşması veya sıkıştırma artefaktları gibi kusurları gizleme eğilimindedir.
Bu, tüm gürültü ve grenlerin iyi olduğu anlamına gelmez. Teknik sınırlamalar nedeniyle kaçınılmaz olabilir, kötü bir yaratıcı tercihin sonucu olabilir ya da dikkat dağıtıcı olabilir.
Ancak alternatif olarak her şeye gürültü giderme uygulamak bence çok daha kötü. Günümüzde birçok kamera varsayılan olarak bunu yapıyor; benim gözüme gürültü giderme nedeniyle oluşan yumuşatma çoğu zaman gerçek dışı ve çok daha rahatsız edici geliyor.
“Gren = gerçekçilik” sözü bana mantıklı gelmiyor. Gerçekte gözümde gren yok
Ancak grenin sanatsal bir araç olarak kullanılma rolünü kabul ediyorum; bu yüzden bu teknolojinin kendisi hâlâ ilginç
Etrafımıza baktığımızda neredeyse her yüzeyde bir biçimde ince bir doku vardır ve görsel olarak tekdüze değildir. Bu görüntü olarak kaydedildiğinde kamera optiği, sınırlı çözünürlük ve sıkıştırma yumuşatması nedeniyle ince doku azalır. Film greni, kaybolan yüksek frekanslı görsel uyaranın bir kısmını sağlar
Gözlerimiz ve beynimiz bu tür yüksek frekanslı uyaranları sever; özgün sahnedeki tam gürültü deseninin yeniden üretilip üretilmediği konusunda da çok titiz değildir. Bu yüzden H.265 video üreten x265 kodlayıcısında gren sentezi yoktur ama psy-rd parametresi vardır. Bu daha çok “sıkıştırılmış görüntü, kaynak kadar ‘enerjik’ görünsün; o enerji tam aynı yerde olmasa da olur” demeye benzer; psy-rdoq ise “genel olarak daha yüksek enerjiyi tercih et”e daha yakındır
Bu tür parametreleri ayarlayarak daha fazla veri saklamadan sıkıştırılmış videonun daha iyi görünmesini sağlayabilirsiniz
Neyse ki gözlerimiz kameralardan çok daha hassastır. Ama burada “gerçekçilik”, dönemin teknolojisiyle yakalanma biçiminden gelir. Gramofon gürültüsünden ya da CRT sinyalinin bulanıklaşma biçiminden farklı değildir. Film yönetmeninin kullandığı teknoloji ve izleyicinin filmi nasıl izleyeceğini bildikleri yöntem açısından “gerçek”tir
Van Gogh’un fırça darbelerinin onun resimleri için gerçek olması gibi. Bir yağlıboyayı zımparalayıp dümdüz yapmak istemezsiniz. Çünkü özgün mecranın gerçekliği budur. Bu yüzden filmin dijital baskısında da özgün olanın gerçekliğini mümkün olduğunca korumak istenir
Bir konuyu çok bilirseniz o nesnenin tarihini daha fazla okuyabilirsiniz; bu da duyguları değiştirir
Buster Keaton skeçlerini izlerken nefesini tutup kıkırdayarak eğlenen bir çocuk ile hangi filmin ve kameranın kullanıldığını, sahnenin soyutlamasının ne anlama geldiğini, Keaton’ın kostümündeki kumaşın nasıl olduğunu bile bilen bir film eleştirmeni, aynı mecra hakkında farklı öznel estetik deneyimler yaşar
Öznel estetik tercih biliş alanındadır. İnsan beynine haritalanmış resmî bir zekâ teorisine ihtiyaç vardır ve bu tür öznel olgular nihayetinde kişiselleştirilmiş veri işleme ile başlangıç koşullarına indirgenir
Temiz cel animasyonuyla karşılaştırıldığında film greni, insanların inançsızlığı askıya almasını kolaylaştırabilir. Çünkü grenin yokluğunu gerçekçi olmayan animasyonla, belirli mecralarla ve CGI ile ilişkilendirmeyi öğrenmişlerdir. Ev videosu ve haberlerde gren ve düşük kalite vardı; dolayısıyla gren “gerçek” ile korelasyon kazandı
Bana göre bundan daha derin bir şey yok. Biz çağımızın ürünüyüz. 40 yıl sonra mecra değişip film greni sürrealizmle ilişkilendirilebilir ya da temelde gürültü olduğu için tamamen kaldırılabilir
Bunun arkasındaki görsel psikolojiyi pek bilmiyorum. Sıkıştırmayla yıkanıp giden yüksek frekansı geri ekliyor olabilir ya da bir tür dithering gibi çalışıyor olabilir
Göz konusunda ise, kuantum fiziği açısından gözde de gren olduğunu varsaymak doğru olur. Sadece beyin bunu süzdüğü için algılamıyoruz. Bunun film greniyle nasıl etkileştiğini pek bilmiyorum
Geçmişteki cam üreticilerinin bugün olduğu gibi düzgün ve büyük cam paneller yapabilme fikrine muazzam derecede hayran kalacağını düşünüyorum; biz ise onların mecburen seçtiği tavizi, sırf alışık olduğumuz için taklit ediyoruz
“Klasik filmleri izlerken film greninin ince hareketi her sahneye sahicilik ve nostalji katar” sözü, bence gerçek sahnenin detaylarını örten görsel gürültü eklemekten ibaret
Nostalji eski oyunculara ya da ilk izlediğiniz zamana dair eski anılar gibi daha belirgin görsel ipuçlarına bağlanabilir
“Filmin gerçekçiliğine katkıda bulunur” sözü de tam tersine; gerçeklikte gren yok
Yine de AV1’in gelişmeye devam edip görsel çöplüğü kodlamak için bitrate israf etmek yerine algoritmik bir ikame mekanizmasına sahip olması sevindirici. Böyle olunca kapatmak da daha kolay olur
Film greni yönetmenin vizyonunun bir parçasıysa, sahnenin arkasına dramatik, diegetic olmayan müzik koymak kadar geçerli bir seçimdir. Bu son derece gayri sahicidir ama duygu uyandırmada çok etkilidir; sanatın amacı da budur
Görüntü yönetmeni Steve Yedlin bunu, izleyicinin gözünün “tutunacağı” bir şey vermek diye açıklıyor
Cep telefonu görüşmelerinde AMR-WB codec’i nominal olarak 50Hz~7000Hz aralığını yakalar. Ama bu yalnızca seçilebilir en yüksek bitrate olan 23.85Kbps için geçerlidir
En yaygın 12.65Kbps’de yalnızca 6400Hz’e kadar içerir; 6400~7000Hz aralığı ise düşük frekanslar ve gürültüyle sentezlenir. Çünkü gürültünün olması, hiç olmamasından daha iyi duyulur
Film greni yok olmalı. O dönem geçti. Sepya fotoğraflar ve 16fps sessiz filmleri 24fps’de oynatmak da çoktan öldü; sırada film greni var
Rochester’daki Eastman Business Park da yıkıldı
Ayrıca YouTube videolarına artık toz ve çizik koymayı bıraksınlar
Videoyu önce çekip, post prodüksiyonda gürültüyü kaldırıp, tekrar gürültü ekleyip, kodlama sırasında yine gürültüyü kaldırdıktan sonra kod çözmede yeniden gürültü eklemek biraz sinir bozucu
Sahte ışıklandırma, sahte gölgeler, sahte gökyüzü vb.
Artık her şey sahte. Orijinal film taramasıyla çalışan bir teknoloji istiyorum. Ayrıntı kaybının ilk adımı olan JPEG sıkıştırmasını bile yapmayan bir yöntem olsa iyi olur
Hareket algılama, ana kareler ve delta kareler sorun değil ama kayıpsız video olmalı. Elbette Blu-ray’e sığacak; streaming’i pek umursamıyorum