Previous
Next

Texas Instruments’in DaVinci platformu üzerinden gerçekleştirilen video kodlama, internet tarayıcı ve ağ üzerinden çoklu ortam iletimi uygulamaları

by Cem Kefeli 20. Mart 2009 13:08

SIU'07 Bildirisi.pdf (357,59 kb)
Çalışmanın tümünü görmek için burayı (YLisansDaVinciVideokodlama.pdf - 562,16 kb) tıklayınız...
Çalışma ile ilgili sunum dosyasına erişmek için burayı (YLisansDaVinciVideokodlama.pps - 1,14 mb) tıklayınız...

1. Video Kodlama


Video kodlama işlemi sayısal video sinyalinin sıkıştırılması ve çözülmesi işlemidir. Diğer bir ifadeyle sayısal video doğal görsel sahnelerinin uzamsal ve zamansal olarak örneklenip gösterilmesi işlemidir. Örnekleme sonrasında ya bir çerçeve ya da bir alan (field) oluşturulmaktadır.

Uzamsal örnekleme sonrasında durağan tek bir çerçeve oluşmaktadır. Çerçeve ise nokta adını verdiğimiz resim bileşenlerinin/piksel (picture element–pel) bir araya gelmesiyle oluşur.

Zamansal örnekleme ise uzamsal örnekleme bileşenlerinin periyodik olarak tekrar etmesidir. Uzamsal örnekleme için t anındaki resmin örneklenmesi, zamansal örnekleme içinse farklı t anlarındaki resimlerin örneklenmesi tanımı yapılabilmektedir. Zamansal ve uzamsal örnekleme ile oluşturulan çerçeveler şekil 1’de gösterilmektedir.

Video dizisinde uzamsal ve zamansal örnekleme
Şekil 1: Video dizisinde uzamsal ve zamansal örnekleme


2. H.264 Video Kodlama

Uluslararası haberleşme birimine bağlı (ITU) Uluslararası Standartlar Örgütü  (ISO) 1988 yılında Hareketli Resimler Uzmanları Grubu’nu kurmuştur (MPEG). 1990 yılında sayısal televizyon yayını göz önüne alınmadan, çoklu-ortam kaynaklarının sıkıştırılmış sayısal sunumunu ele almak amacıyla 1.5Mbps sabit bit hızı ve sürekli tarama kullanan MPEG–1 standardı ortaya atıldı ve 1992 yılında resmi olarak kabul edildi. MPEG–1 formatı kullanılarak 1.2Mbps ile sıkıştırılan ve açılan Ortak Arabirim Formatındaki (CIF) görüntü kalitesinin, Video Ev Sistemi (VHS) formatında kaydedilen analog videonun kalitesi ile aynı (veya VHS’den daha iyi) olduğu görülmüştür.

MPEG–1, MPEG grubunun ilk standardı olup CD-ROM’lar üzerinde video depolamak için geliştirilmiştir. Bu standardın temel özellikleri, ses sıkıştırma yöntemleri (MP3), blok temelli hareket dengelemesi, ayrık kosinüs dönüşümü (DCT) gibi video kodlama metotlarıdır.

MPEG–2, MPEG-1’deki video kalitesini arttırmak için 1994 yılında önerilmiştir. DVD’lerde kullanılan sıkıştırma formatıdır. Video kodlamada bu standardın getirmiş olduğu yeniliklerden bazıları; kalite kontrolü için farklı profil yapılarının kullanılması, değişken bit oranının 2Mbps-20Mbps arasında olması ve daha gelişmiş kodlama algoritmaları kullanılmasıdır. MPEG–2 formatı aynı zamanda Sayısal Video Yayınında (DVB-C, DVB-S, DVB-T) kullanılmaktadır.

MPEG grubu tarafından geliştirilen diğer bir video kodlama standardı ise MPEG–4 video kodlama tekniğidir. Bu format 'ISO/IEC 14496' ismi altında 1999 yılında uluslar arası standart olarak kabul edilmiştir. MPEG–4 video sıkıştırma formatının getirmiş olduğu en büyük avantaj MPEG–1 ve MPEG–2 ile aynı bit oranında 2 kat daha fazla nesnel video başarımı sağlamasıdır. Örneğin, VHS kalitesinde MPEG–1 ile 1,2 Mbps bit hızında kodlanan bir video dizisi, aynı nesnel video kalitesinde MPEG–4 ile 500–700 Mbps bit hızında kodlanabilmektedir. Son nesil video kodlama standartlarından olan MPEG–4 içerik temelli kodlama tekniği kullanmaktadır. Bu kodlama tekniğinde video çerçevelerindeki her nesneye ilişkin doku ve hareket bilgisi ayrı bir katmanda kodlanmaktadır. Bu sıkıştırma formatı özellikle mobil uygulamaları için geliştirilmiş bir formattır.

ITU tarafından standart olarak kabul edilen H.261 video sıkıştırma formatı Tümleşik Hizmetler Sayısal Ağı (ISDN) üzerinden video konferansı için tasarlanmıştır. ISDN üzerinden gerçekleştirilen bu sistem için kullanılan bant genişliği 64Kbps ile 2Mbps arasındadır. H.261 standardında içsel (çerçeve içi) kip seçiminde ve aynı zamanda diğer çerçeveler için referans olarak kullanılan içsel çerçeve (I Frame) ile çerçeveler arası hareket tahmininde kullanılan P çerçevesi (P Frame) kodlanmaktadır.

H.261’in sıkıştırma performansını artırmak için H.263 sıkıştırma formatı önerilmiştir. Bu standart H.261 standardı ile karşılaştırıldığında aynı kalitedeki resimler için hemen hemen yarı yarıya bit kazancı sağlamaktadır. H.263 video kodlama tekniğinin H.261’den farklı olarak kullandığı özelliklerin biri alt piksel hareket vektörlerini kullanmasıdır. Diğer bir özellik ise I ve P çerçevesine ek olarak çift-yönlü hareket kestiriminde (Bidectional Motion estimation) kullanılan B çerçevesinin bu standartta kullanılmasıdır.

En yeni video kodlama standardı olarak bilinen H.264, resmi organizasyon olan ITU ve ISO standartlarının ortaklaşa geliştirdikleri bir kodlama yapısıdır. Bu yeni video kodlama standardı, video kodlama algoritmalarına birçok yeni özellik katarak, önceki video sıkıştırma platformlarından (MPEG–4, H.263 vb.) daha iyi bir nesnel video başarımı sergilemektedir. Literatürde bu yeni standart için farklı isimler kullanılmaktadır. Bunlar;

  • H.26L
  • JVT (Joint Video Team) veya JVT CODEC (enCOder DECoder)
  • JM2.x, JM3.x, JM4.x
  • AVC (Advanced Video Codec)
  • MPEG–4 Part 10 (resmi MPEG isimlendirmesi)
  • H.264 (resmi ITU isimlendirmesi)

Gerçekleştirilen tez kapsamında resmi ITU isimlendirmesi olan H.264 notasyonu kullanılmaktadır.

3. Video Kodlama İçin DaVinciTM Platformu

TMS320DM644x (DaVinciTM platformu) , gelecek nesil gömülü sistemlerin video kodlama ve çözme gibi gereksinimleri göz önüne alınarak geliştirilmiş yeni bir teknolojidir. Bu platform çift çekirdekli bir mimariye sahiptir. İçerisinde yüksek performanslı sabit noktalı işlem yapabilen bir sayısal işaret işleyici yongası (DSP) (fixed point-TMS320C64x+™) ve 32 bitlik RISC mimarisinde bir ARM (ARM926EJ-S) işlemci yongası bulunmaktadır. ARM işlemci, sistem koşullama, düzenleme, güç yönetimi, kullanıcı arayüzü, bağlantı fonksiyonları, DSP alt sisteminin kontrolü gibi, sistemin tüm kontrollerinden sorumludur. DSP ise imge, video ve ses işleme fonksiyonları gibi özellikle yüksek hesapsal yüke sahip işlemlerin gerçekleştirilmesi için kullanılabilmektedir. Bu çalışmada yapılan uygulamalarda tasarımcıların DaVinciTM işlemcisi ile kolay ve rahat bir şekilde uygulama geliştirebilmeleri için TI tarafından üretilen bir uygulama geliştirme kiti (Digital Video Evaluation Module-DVEVM) kullanılmıştır. Bu kit üzerinde uygulama kartı, NTSC/PAL CCD kamera ve LCD ekran bulunmaktadır. Uygulama kart üzerinde ise DaVinciTM işlemcisi ve diğer arabirimler ile birlikte 40GB kapasiteli bir sabit disk bulunmaktadır. ARM işlemcisi gerçek zamanlı bir Linux dağıtımı olan Monta Vista’yı çalıştırmaktadır. DVEVM ile birlikte H.264, MPEG–4, AAC+ ve G.711 kodlayıcı ve kod çözücü uygulamaları için çeşitli gösterimler bulunmaktadır. Şekil 2’de DaVinciTM platformunun öbek gösterimi verilmektedir.

DM6446 Fonksiyon Öbek Gösterimi
Şekil 2: DM6446 Fonksiyon Öbek Gösterimi


Günümüzde görüntü sıkıştırma, görüntü iletimi gibi çoklu ortam uygulamaları çok büyük bir kullanım alanı bulmaya başlamıştır. Bu bağlamda DaVinciTM platformu özellikle sayısal video uygulamalarında bu ihtiyaçların karşılanmasını amaçlamaktadır. Üzerinde gömülü gelen tanıtım uygulamaları ile gerçek zamanlı olarak kameradan yakalanan görüntü H.264 standardına göre kodlanabilmekte ve ardından çözülüp izlenebilmektedir. Tüm bu kodlama ve kod çözme işlemleri “Codec Engine” tarafından yapılmaktadır. Codec Engine video ve ses kodlama ve kod çözme kısmını bulunduran bir dizi uygulama programı arayüzünden (Application Program Interface-API) oluşmaktadır. H.264 kodlama ve kod çözme algoritmaları Codec Engine tarafından yönetilip, DaVinciTM DSP çekirdeği üzerinde yürütülmektedir. Bu çalışmada DaVinciTM platformu üzerinde gerçekleştirilen video kodlama, internet tarayıcı ve çokluortam iletimi uygulamalarından bahsedilmektedir.

3.1. DaVinciTM ile H.264/AVC Video Kodlama


En yeni video kodlama standardı olarak bilinen H.264/AVC, resmi organizasyonlar olan ITU ve ISO kurumlarının ortaklaşa geliştirdikleri bir kodlama standardıdır. Bu yeni standart video görüntülerini daha iyi sıkıştırarak, önceki video sıkıştırma platformlarından (MPEG–4, H.263 vb.) daha iyi bir başarım sergilemektedir. Video kodlama işlemi sırasında kodlama (Encoder), dışında kod çözme (Decoder) işlemi de gerçekleştirilmektedir. İleri-yol kodlama aşamasında giriş çerçevesi öncelikle makro bloklara ayrılır. Her bir makro blok çerçeve-içi (Intra) veya çerçeveler arası (Inter) kestirimde kullanılır. Geri çatılmış çerçeveleri oluşturmak için P (Prediction) olarak isimlendirilen makro bloklar içindeki bloklar kullanılır. Çerçeve-içi kestirimde P, o anki dilim (Slice) içerisindeki kodlanmış, çözülmüş ve yeniden oluşturulmuş örnek değerlerinden oluşturulur. P bloğunun çerçeveler-arası kestirimde kullanılması halinde, P bloğu uygun referans çerçevesi seçilerek hareket-dengeleme yöntemi ile oluşturulur. Artıklık bloğunu oluşturmak için kestirilen blok (P) o anki bloktan çıkarılır. Artıklık bloğu uygun bir blok dönüşüm kodlaması kullanılarak frekans düzlemine dönüştürülür. Dönüşüm kodlaması sonrası ilgili blok nicemlenir. Nicemlenen dönüşüm katsayıları yeniden düzenlenir ve kayıpsız sıkıştırma özelliği olan entropi kodlama yapısı kullanılarak sıkıştırılır. Entropi kodlanmış katsayılar, makro blok içindeki her bloğu çözmek için gerekli olan bilgilerle birlikte sıkıştırılmış bit dizinini oluşturur ve bu bit dizinleri iletim veya depolama amaçlı olarak ağ iletim katmanına gönderilir (Network Abstraction Layer- NAL). Video kodlama sistemlerinde daha yüksek sıkıştırma başarımı için çerçevelerin referans olarak kullanılması gerekmektedir. Çerçevelerin referans olarak kullanılabilmesi için de makro blok içindeki her bir bloğun çözülmesi ve yeniden oluşturulması gerekmektedir. Şekil 3’de X olarak gösterilen katsayılar yeniden ölçeklendirilir ve fark bloğunu oluşturmak için ters dönüşüm yapısına sokulur. Süzgeçlenmemiş bloğu yani orijinal bloğun çözülmüş halini oluşturmak için fark bloğuna P bloğu eklenir. Bloklar arası bozulmaları (blocking-artifacts) azaltmak için çerçeve bloklama-önler süzgeçleme işlemine sokulur ve referans çerçevesi oluşturulur. Kod-çözücü yapısı Şekil 4’de gösterilmektedir. Sıkıştırılmış bit dizinleri entropi kod çözücü ile çözülür ve yeniden düzenlenerek X katsayıları elde edilir. Bu katsayılar yeniden ölçeklendirilir ve ters dönüşüm yapısına uyarlanır. Ardından D'n bloğu elde edilir. Bit dizinindeki başlık dosyaları kullanılarak tahmin bloğu P oluşturulur. Tahmin bloğu fark bloğu ile toplanır ve süzgeçlenmemiş çerçeve elde edilir. Bu çerçevedeki bloklar çerçeve-içi kod-çözme işleminde kullanılır. Çerçeveler-arası kod-çözme işleminde ise bloklama-önler süzgeçleme sonucunda elde edilen çerçeveler kullanılır. Şekil 5’de DaVinciTM platformu ile gerçekleştirilen H.264 video uygulaması gösterilmektedir. Burada Analog Video kameradan alınan görüntü Linux’un V4L2 (Video For Linux 2) sürücüsü kullanılarak ARM işlemci tarafından yakalanmaktadır. TMS320DM644x yongası içerisindeki ARM çekirdeği ile DSP çekirdeği arasındaki ortak veri yolu kullanılarak görüntü verisi ARM tarafından DSP tarafına aktarılmaktadır. DSP tarafında koşturulacak programın çalıştırılabiliri ise yine ARM tarafından DSPLink aracılığı ile DSP’ye yüklenmektedir. ARM’ın kontrolünde DSP’de koşturulan programın çıktısı yine ARM ve DSP çekirdeği arasındaki ortak veri yolu ile ARM tarafına döndürülmektedir. Gerçekleştirilen video kodlama uygulamasında TMS320DM6446 yongası üzerinde gerçekzamanlı H.264 video kodlama ve aynı zamanda video çözme işlemleri yapılmaktadır. Bu amaçla ARM tarafından DSPLink ile H.264 kodlama ve kod çözme çalıştırılabilirleri DSP tarafına yüklenmektedir. Sonrasında ham halde ARM tarafından yakalanan veri DSP çekirdeğine aktarılmakta ve H.264 kodlandıktan sonra kodlanmış veri tekrar DSP tarafından ARM ile DSP’nin ortak kullandığı hafıza bölgesine yazılmaktadır. Sonrasında ARM DSP’ye kod çözme işlemini yapma komutu vermektedir. Bu aşamada DSP, yine ortak bellekte bulunan kodlanmış veriyi alarak H.264 kod çözme işlemini gerçekleştirmekte ve çözülen çerçeve verisini yine ortak bellek bölgesine atmaktadır. ARM ortak bellek bölgesinden çektiği çözülmüş görüntü verisini FBDev (Frame Buffer Device) video çıkış sürücüsü kullanarak ekrana basmaktadır.

H.264 kodlayıcı yapısı
Şekil3: H.264 kodlayıcı yapısı

 

H.264 kod çözücü yapısı
Şekil 4: H.264 kod çözücü yapısı

 

DaVinci ile H.264 kodlama ve kod çözme uygulaması
Şekil 5: DaVinciTM ile H.264 kodlama ve kod çözme uygulaması


3.2. DaVinciTM Platformu ile İnternet Tarayıcısı Uygulaması

Bu çalışmada geliştirilen uygulamanın günlük hayatta yer bulabilmesi için hedef en uygun seçeneklerden birisi set üstü kutulardır. Bu cihazlar kullanıcılara farklı uygulama seçenekleri sunarlar ve bunlardan birisi de internet tarayıcısı uygulamasıdır. DVEVM kartı üzerinde içerisinde Linux işletim sistemi gömülü 40GB’lık bir hard disk bulunmaktadır. Bu doğrultuda yapılan araştırmalar sonucunda DaVinci platformu için en ucuz ve sağlıklı tarayıcı çözümünün Konqueror Embedded olduğu belirlenmiştir çünkü diğer internet tarayıcıları (Firefox, Opera, Pixil vs.) uygulamalarının kullanımı gerek ARM platformu ile çeşitli uyumsuzluklar gerekse lisanslama sıkıntıları yüzünden pek tercih edilmemiştir. Bu amaçla sistem görsel arayüz olarak gömülü Xserver kullanmaktadır. Konqueror derleme aşamasında öncelikle internet tarayıcı sürümü ile uyumlu Qt ve Qt embedded kütüphanelerinin derlenmiş olması gerekmektedir. Qt kütüphanesi Xserver altında uygulama geliştirmek isteyenler için tasarlanmış bir uygulama kütüphanesidir. Qt görsel uygulamalardan başka eklentiler de içermektedir. Bunlara örnek vermek gerekirse Qt kitaplığı içinde Sql ve ağ uygulamaları geliştirmek için gerekli bir çok fonksiyon bulunmaktadır. Bu eklentiler özellikle veritabanı uygulaması geliştiren araştırmacılara büyük kolaylıklar sağlamaktadır. Qt ile ilgili örnekleri derlemek ve nasıl işlediğini anlamak için geliştiricinin temel C++ bilgisi olması yeterlidir. Qt kütüphanelerinin ve daha sonra Qt embedded kütüphanelerinin derlenmesi sırasında birçok hata ile karşılaşılabilmektedir. Bu hataları düzeltebilmek için çoğu yerde kütüphane fonksiyonlarında değişiklik yapmak zorunda kalınabilir. İnternet sayfası içerisindeki resimler de gömülü sistem tarafından çözülerek gösterilebilmektedir. Bu aşamada henüz çözülemeyen problem Flash gösterilmesindedir. Konqueror embedded yalın hali ile Flash desteği içermemektedir. Bunun için Konqueror’un flash eklentisinin derlenmesi gerekmektedir ama internet tarayıcısı ARM tarafında koştuğu için bu işlemciyle ile ilgili uyumsuzluklar nedeniyle Flash’ı derlemek mümkün olmamıştır. Gerçekleştirilen internet tarayıcı uygulamasının çalışmasına bir örnek Şekil 6’de gösterilmektedir.

DaVinci ile internet tarayıcı uygulaması
Şekil 6: DaVinciTM ile internet tarayıcı uygulaması


3.3. DaVinciTM Platformu ile RTP üzerinden Çokluortam İletim Uygulaması

RTP (Real-time Transport Protocol), gerçek zamanlı ses, görüntü ya da benzetim verilerinin ağ üzerinden uçtan ucu taşınmasını sağlayan bir protokoldür. RTP, kaynak ayırtımı (resource reservation) yapmaz ve hizmet kalitesini (QoS) garanti etmez. RTCP (RTP Control Protocol), RTP protokolü ile birlikte çalışır ve oturumda yer alan tüm kullanıcılara periyodik olarak kontrol paketleri göndererek alım kalitesi (reception quality) ile ilgili bilgi sağlar. Eğer sıkışıklık oluşmaya başlamışsa, uygulama veri hızını azaltabilir. UDP üzerinden RTP veri aktarımı gerçekleştirilirken socket programlama işlevi için ccRTP isimli kütüphane dosyalarından faydalanılmıştır. Bilgisayar ağları üzerinden veri iletimi gerçekleştirilirken sıklıkla karşılaşılan sorun, kaynağın içerdiği veri miktarıdır. Düşük boyutlu veriler RTP üzerinden doğrudan, parçalanmadan taşınabilmektedir. Bununla birlikte görüntü gibi yüksek veri boyutlarını ağ üzerinden taşıyabilmek için RTP protokolü ile veri taşıyan yazılımlara ek özellikler kazandırılması gerekmektedir. Bu aşamada sıklıkla başvurulan yöntemlerden birisi böl-birleştir düşüncesiyle kaynakta veriyi uygun parçalara bölmek ve sonra ağ katmanında taşınması ve son olarak alıcıda elde edilen verilerin tekrar uygun şekilde birleştirilmesidir. Bu işlemler, gönderilen veriye veriyi tanımlayıcı bazı tanımlamalar (başlık veya etiket bilgileri) eklenmesini gerektirmektedir. Eklenen bu tanımlamalar ham veri boyutunu arttırmakta ve toplamda daha fazla miktarda veri iletilmesine neden olmaktadır. Gerçekleştirilen uygulamada başlık bilgisini barındıran “headerframe” ve veriyi barındıran “sourceframe” olmak üzere iki farklı çerçeve yapısı ile kaynak veri ifade edilmiştir. Şekil 6’da “headerframe” ve ”sourceframe” için kullanılan çerçeve yapısı gösterilmektedir. Şekil 6(a)’da gösterilen “headerframe” on blok, Şekil 7(b)’de gösterilen “sourceframe” ise beş bloktan oluşmaktadır (A, B … J). A bloğu her iki çerçeve içinde çerçevenin niteliğini gösteren bir tanımlayıcıdır ve “HEADER” ya da “SOURCE” alt değerlerini alabilmektedir. “headerframe” için; (B) gönderilen dosya formatını, (C) toplam veri miktarını, (D) “sourceframe”’in veri boyutunu, (E) ise “sourceframe” sayısını göstermektedir. “headerframe”, toplam 100 byte’lık veri içermektedir ve bölünerek gönderilecek her veri için yalnızca bir defa alıcıya ulaştırılması zorunludur. “sourceframe” de, (B) kaynak çerçeve numarasını, (C) ise çerçeve için veri boyutunu göstermektedir. Alıcıda elde edilen “headerframe” e göre veri için alıcı yapısı oluşturulmaktadır ve alınan her bir “sourceframe” ilgili veri bloğuna yerleştirilerek birleştirilmiş veri elde edilmektedir. Şekil 8’de gösterilen alıcı yapısındaki gibi alınan her bir veri bir öncekinin sonuna eklenmediği için iletim sırasında küçük kayıplar oluşsa bile kayıpların yeri boş kalacaktır ve vericiden tekrar istenmesi mümkün olmaktadır.

Şekil 9’da DaVinciTM platformu kullanılarak gerçekleştirilen ağ üzerinden video iletim uygulamasına bir örnek gösterilmektedir. Burada DaVinciTM kartına bağlı ekranda görünen video verisi, DaVinciTM kartının ağ bağlantısı üzerinden RTP ile iletilerek ağ üzerindeki bir bilgisayarda çalıştırılan program ile alınmakta ve bilgisayar ekranında da gösterilmektedir.

‘headerframe’ ve ‘sourceframe’ için çerçeve yapısı
Şekil 7:  (a) ‘headerframe’ için çerçeve yapısı, (b) ‘sourceframe’ için çerçeve yapısı
( N/A : Kullanımda değil, X : Rastgele değer )

 

Alıcı için sembolik gösterim
Şekil 8: Alıcı için sembolik gösterim

 

DaVinci ile ağ üzerinden video iletim uygulaması
Şekil 9: DaVinciTM ile ağ üzerinden video iletim uygulaması


4. SONUÇLAR

TMS320DM644x (DaVinciTM platformu) gelecek nesil gömülü sistemlerin video kodlama ve çözme gibi gereksinimleri göz önüne alınarak geliştirilmiş, çift çekirdekli bir mimariye sahip yeni bir teknolojidir. Bu çalışmada Texas Instruments’in DaVinciTM platformu üzerinden gerçekleştirilen video kodlama, internet tarayıcı ve ağ üzerinden çoklu ortam iletimi uygulamaları sunulmuştur.

SIU'07 Bildirisi.pdf (357,59 kb)
Çalışmanın tümünü görmek için burayı (YLisansDaVinciVideokodlama.pdf - 562,16 kb) tıklayınız...
Çalışma ile ilgili sunum dosyasına erişmek için burayı (YLisansDaVinciVideokodlama.pps - 1,14 mb) tıklayınız...

Etiketler: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Kategoriler: Projeler | Projeler - C/C++ | Projeler - Gömülü sistemler | Projeler - İşaret işleme | Projeler - Video işleme | Yazılım

Yorum ekle

biuquote
  • Yorum
  • Canlı önizleme
Loading

Hakkımda...

Cem KEFELİ

Electronics and
Telecommunication Eng.
devamı...


Son yapılan yorumlar...

Comment RSS

Yasal bir uyarı...

Disclaimer"Bu web sitesinde görmüş olduğunuz bilgilerin, dokümanların ve diğer materyallerin kullanılmasından doğabilecek hiç bir sorumluluktan site sahibi sorumlu tutulamaz. Web sitesi içerisinde yer alan yazılar, yorumlar, resimler ve diğer tüm içerikler yalnızca sahibinin görüşünü yansıtmakta olup içeriğin sahibi kişilerin çalıştığı kurumları bağlayıcı hiç bir nitelik taşımamaktadır. Yapılan tüm alıntılar mutlaka kaynak gösterilerek verilmeye çalışılmaktadır. Web sitesi içerisinde bulunan ilgili materyaller, ilgili yasal kurumlar tarafından uygun görülmemesi durumda kaldırılacaktır."
General