Published on

Yapay Zeka ile Video Kodlamayı Geliştirme - Bölüm 4/6

Bu yazı serimizde yapay zeka ile video kodlamayı nasıl geliştirebileceğimiz hakkında konuşmaya devam ediyoruz. Bu yazıda video çözücü (decoder) ile çözümlediğimiz videoları yapay zeka ile nasıl geliştirebileceğimiz konusuna bakıyoruz.


Meylü'l-İstikmal: Çözümlenmiş Videoları Yapay Zeka ile Geliştirme

Kaynak videoyu kodlayıp sıkıştırılmış bir şekilde temsil etme işlemi, video kodlamanın ilk aşamasını oluşturur. İkinci ve son aşama ise bu kodlanmış videoyu kullanarak videoyu aslına uygun şekilde tekrardan oluşturma, çözümleme (decoding), işlemidir. Böylelikle kodlanmış ve aktarılmış video kullanıcıya gösterilmeye hazır hale gelir.

Bir önceki yazımızda yapay zeka ile video kodlamayı nasıl geliştirebileceğimizi görmüştük. Şimdi sıra video çözümleme aşamasında neler yapabileceğimze geldi. Başlamadan önce aşağıda çözümleme aşamalarını gösteren figürümüze bakıp yapay zekayı hangi aşamalarda kullanabiliriz onu bir görelim.

video

Video çözümlemede amaç, kodlama sırasında yapılan işlemlerin tersinin uygulanması suretiyle videonun ilk haline olabildiğince yakın şekilde oluşturulmasıdır. İlk adım olarak ters dönüştürme ve niceleme işlemi ile başlar ki bu işlemler video kodlamanın son aşamalarıdır. Bu adımda, kodlama sırasında uygulanan işlemlerin tersi uygulanıp videonun tekrardan oluşturulması için gereken hareket bilgisi elde edilir.

Bu aşamadan sonra hareket bilgileri (hareket vektörleri, referans kareler vb.) elde edilince bir sonraki adım bu bilgileri kullanarak video karelerini tekrardan oluşturmak oluyor. Bu adımda video kareleri başka karelerden gelen hareket bilgileri (dışsal tahmin) ve/veya aynı kare içerisinden gelen hareket bilgileri (içsel tahmin) kullanılarak tekrardan inşa edilir. Basit bir işlem gibi gözükse de dışsal veya içsel bilgi kullanma kararı aslında çetrefilli bir karardır. Bunun yanı sıra piksellerin doğru bir şekilde oluştuğundan emin olmak için hareket vektörlerinin açısal yönleri de isabetli bir şekilde tespit edilmelidir. İşte bu karar mekanizmalarında yapay zeka destekli geliştirmeleri kullanmak akıllıca bir çözüm olacaktır.

Artık videomuz neredeyse kullanıcıya gösterilmeye hazır. Ancak bu bir yeniden oluşturulma olduğu ve kodlama sırasındaki işlemler veri kaybına sebebiyet verdiği için, yeniden oluşturulma aşaması sonucunda videoda görsel bozulmaların meydana gelmesi kaçınılmaz oluyor. O yüzden videoyu kullanıcıya göndermeden önce uygulanması gereken son bir işlem daha var o da iç-döngü filtrelemesi. Burada amaç oluşan bozulmaları olabildiğince yok edip görsel olarak daha tatmin edici bir içerik sunmak.

Gürültü giderme ve bloklanma giderme bu aşamada uygulanan en temel iki filtreleme işlemi. Gürültü giderme filtresi oluşan videodaki görsel gürültüyü (karıncalanma misali) gidermeye odaklanırken, bloklama giderme ise blok tabanlı hareket tahmini sonucunda oluşan videodaki görsel bozulmaları gidermeyi amaçlıyor. Yapay zeka tabanlı iç-döngü filtreleri elde ettikleri etkileyici sonuçlar hasebiyle son yıllarda oldukça revaçta olmaya başladılar.

Bu aşamadan sonra üzerine o kadar emek harcadığımız videomuz sonunda kullanıcıya gösterilmeye hazır. Çözümlenmiş video kareleri resim deposuna gönderilir ve video oynatımı nihayet başlayabilir. Başlamasına başlayabilir de bizim elimizdeki sihirli çekicin durmaya hiç niyeti yok. O yüzden bzi de görsel kaliteyi arttırmak uğruna onu kullanmaya hala devam edebiliriz. Elimizde bir koz kartımız daha var ki o da çözünürlük yükseltme işlemi.

Çözünürlük yükseltme (Super-resolution) işleminde temel amaç görselin çözünürlüğünü kalitesine çok fazla zeval getirmeden yükseltmektir. Geleneksel olarak çift doğrusal (bilinear) veya bikübik (bicubic) interpolasyonu ile yapılan bu işlem çözünürlüğü yükseltebilir ancak görsel olarak rahatsız edici bozulmalara da sebebiyet verir. Yapay zekanın birinci vazifesi geleneksel yöntemleri geliştirmek olduğu için, bu işlem de bu vazifeden nasibini almış durumda. Yapay zeka tabanlı çözünürlük yükseltme yöntemleri geleneksellere nazaran çok daha iyi sonuçlar sunabiliyorlar bu da demek oluyor ki biz de hazır videoyu kullanıcıya göstermeden önce onlardan faydalanıp görsel kaliteyi bir nebze daha iyileştirebiliriz.


Yapay zekanın video çözümleme aşamasında ne gibi faydalar sunabileceğinden bahsetmiş olduk. Artık yapay zekanın video kodlamanın tamamında nasıl kullanabileceğine dair bir fikir sahibiyiz. Peki ya video kodlayıcıları bağlı olmasaydık nasıl olurdu? Videolar sadece yapay zeka kullanarak sıkıştırmak mümkün mü? Bu sorular bir sonraki yazımızın konusu olacaklar.