Ana Sayfa > Fpga > FPGA Görüntü İşlemcisi

FPGA Görüntü İşlemcisi

27 January 2012 | No Comments

Bu uygulamada , Fpga üzerinde görüntü işleme konusunda esneklik ve güçlü bir yapı için geliştirdiğimiz sistem üzerine bilgiler vereceğiz. Görüntü işlemcisinin görüntüyü işlemek için temel gereksinimleri  : dokunmatik kontrol , renk uzayını dönüştürme , hafıza kontrolü , filtreleme ve görüntü çıkışı gibi gereksinimlerdir. tPad Multimedya geliştirme kitinin kullanımı ( http://www.tpad.terasic.com/ ) ile başka herhangi bir donanıma ihtiyaç duymadan bir çok tasarımın prototipi için sizlere hepsi bir arada çözüm sunuyoruz.

Giriş
Son zamanlarda , Fpga ile görüntü işleme üzerine esnek çözümler ve çözümlerin artışını gördüğümüz için sanşlıyız. Bir kaç yıl geri dönecek olursak , görüntü işleme üzerine uygulanabilir çözümler sunabilen sadece ASICS vardı, fakat Fpga maliyet ve performans açısından daha rekabetçi hale gelince, Fpga’ler ASICS’den cazip hale geldi diyebiliriz . Fpga’ler hızlı prototipleme ortamı, nispeten yüksek maliyetleri düşürme ve uzun süren ASICS tasarımlarını daha kısa sürede tamamlamak için kullanılabilir. Bu makalede, kullanıcıların kendi Fpga sistemlerini geliştirmeye başlaması için hızlı ve esnek bir giriş yaptık.

Tpad’in güçlü multimedya yeteneklerini kullanarak görüntü işleme motoru oluşturduk. Bu sistemin özellikleri:

1. Dinamik yumuşatma ve kenar arttırıcı işleme.
2. Sezgisel dokunmatik ekran kontrolü.
3. İşlem öncesi ve işlem sonrası sonuçların karşılaştırılarak analiz edilmesi
4. İşlemniş görüntüleri bellekte tutma

Sistemimizin aşağıda gösterilen blog diyagramı , akış sürecini ve yapı bloklarını özetliyor.


Resim: Görüntü İşlemcisi Blog Diyagramı

3 ayrı kategoride sistemi tanıyalım.

1. Bellek Kullanımı
2. Görüntü İşleme
3. Dokunmatik Panel Kontrolü

Bellek Kullanımı
Fpga’ler son tasarımlar için bellek platformlarını seçme esnekliği taşımaktadır . Bu tasarımda, resimler flash hafızanın içinde uzun süreli olarak saklanabilir. On Board çıktısı SDRAM ise buffer olarak davranabilir ve uzun okuma süresi önlenebilir. Bu Fpga için SDRAM ile Flash hafıza entegre olarak tasarlanmış ve ikili arasında iletişim sağlanmıştır.

Görüntü İşleme: Bizim görüntü işlememiz çeşitli fonksiyon bloklarına ayrılır. İlk olarak renk uzayını RGB’den YUV’a dönüştürüyor ve daha sonra görüntü işlemeyi gerçekleştiriyoruz. Renk uzayı çevrimi cihaza pixel’lerin sadece Y (Parlaklık) bileşenini sağlıyor. Lcd ekranda görüntü alabilmek için cihaz renk uzayını tekrar RGB’ye dönüştürüyoruz.


Resim 2: Görüntü İşleme Akış Şeması

Bizden istenen renk uzayından sonra, yüklenen resimleri işleyip çıkışta filtreliyoruz. Resmi Yumuşatmaya (Alçak geçiren filtre yardımı ile) ve tepe değerine(peaking) bağlı olarak resmi yumuşatmış (Resme bulanıklık vermekte denilebilir) yada resmin kenarlarında degişiklik yapıp resmimizi sonlandırıyoruz. Ekranda görülen yön tuşlarıyla alçak geçiren filtre yardımıyla resme daha farklı yumuşaklık değeri verebiliriz. Diğer bir taraftan Tepe değeri ile(peaking) , pixeller arasındaki farkı arttırarak daha belirgin kenarlar oluşturabilir ve özel seviyeler ile bu farkı ayarlayabiliriz.

Dokunmatik Kontrol
tPad’in 8-inç Lcd ekranı bulunmaktadır. tPad’in kullanıcıları için çok sayıda resmi görüntüleyebilmek adına dokunmatik ekrana resim değiştirme özelliği dahil edilmiştir. Bu özelliği lcd ekran üzerinde bulunan butonlar yardımıyla resimleri tek tek görünteleyebiliriz.

Lcd Ekranda bulunan Yukarı/Aşağı yön tuşları ile kenarların seviye/ağırlık ve yumuşatma oranını ayarlayabiliriz. Karşılaştırma butonu ile yaptığımız degişiklikleri orjinal resim ile karşılaştırabiliriz.


Resim 3: Kullanıcı Grafik Arayüz Düzeni

Aşağıdaki resimler ile sistemin nasıl kullanılacağını gösteriyoruz.

1.İlk olarak “Edge” butonuna basıyoruz, daha sonra gürültüyü temizlemek,parlaklığı ve koyuluğu ayarlamak için yani resmi belirginleştirmek için yukarı ok tuşunu kullanıyoruz ya da resmi gürültülü hale getirmek istiyorsak aşağı ok dokunmamız yetiyor.

2.Daha sonra “Smooth” butonu ile resim üzerinde yumuşatma(bulanıklaştırma) yapabiliyoruz ve bu yumuşatmayı alçak geçiren filtre yardımıyla yapıyoruz. Lcd ekranda bulunan “üst ok” ve “alt ok” butonlarıyla yumuşatmanın değerini ayarlayabiliyoruz.


Resim 4: Sol tarafta bulunan resim gürültünün azaltıldığı resim karesidir.
Resim 5: Sağ tarafta bulunan resim yumuşatmanın(bulanıklaştırma) olduğu resim karesidir.

3.Sağ tarafda bulunan “>>” şeklindeki butona basarak flash hafızadaki resmi tarayabiliriz.
4.Sağ alt köşedeki “Reset” butonuna dokunarakda da resmi orjinal haline getirebiliriz.


Resim 6: Sol tarafda bulunan resim, resmin taranmış halidir..
Resim 7: Sağ tarafda bulunan resim, resmin orjinal haline dönüştürülmüş halidir.

5.Elde ettiğimiz resmi orjinal resimle aynı ekranda karşılaştırmak için “*” butonuna basmalıyız. Resmin kaydırma işlemini ise sağ ve sol tarafda bulunan “<" ">” butonları ile ayarlayabiliriz.


Resim 8: Sol taraftda bulanan resimde , resmi sağa kaydırma işlemi yapılmaktadır.
Resim 9: Sağ taraftda bulanan resimde , resmi sola kaydırma işlemi yapılmaktadır.

Bu uygulamamızdan da görüldü gibi , Fpga görüntü işleme için gerçekten güçlü bir sistem ve harcanan maliyetde diğer sistemlere göre olduça az. Yeniden kolay bir şekilde programlanabilen bu platform mühendisler için kolayca uygunabilirliği yüksek temel bir platform niteliği taşıyor. Bu cihazı kullanan kişiler , aynı zamanda kendi tasarımlarımlarını cihaza ekleyip cihaz üzerinde değişiklik yapabilir. ASICS demeode olma riski ile karşı karşıya iken, Fpga’ler prototipler için düşük maliyetlerde ve çok fazla çözüm olanağı sağlıyor.

*Bu projenin kaynak kodlarını istemek için lütfen bize e-mail atın : support@terasic.com
* tPad video ve gömülü değerlendirme seti olarak da bilinir. (VEEK)

Not: Bu makale adresinden Türkçeye çevrilmiştir.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>