Ana içeriğe atla
VXLIB kullanan C7 tabanlı MCU projeleri, işlemcide yer alan DSP hızlandırıcı çekirdeği üzerinden çalışır. Bu sayede görüntü işleme, filtreleme, özellik çıkarımı ve yoğun matris/piksel işlemleri donanımsal olarak hızlandırılır ve gerçek zamanlı uygulamalarda performans önemli ölçüde artırılır.
VXLIB, aşağıdaki temel görüntü işleme yeteneklerini sağlar:
  • Görüntü filtreleme
  • İstatistiksel bilgi çıkarımı
  • Özellik tespiti
  • Takip ve tanıma
  • Düşük seviye piksel işleme
Bu çekirdekler, aşağıdaki uygulama alanlarında temel yapı taşı olarak kullanılabilir:
  • Video Analitiği
  • Video Gözetimi
  • Otomotiv Görüntü İşleme
  • Gömülü Görüntü İşleme
  • Oyun ve Eğlence Görüntü Sistemleri
  • Endüstriyel Makine Görüsü
  • Tüketici Elektroniği
  • Artırılmış Gerçeklik

Örnek Proje

VXLIB kütüphanesinin entegrasyonunu referans alarak inceleyebileceğiniz çalışır bir örnek proje, T3 Gemstone GitHub’daki examples reposu içerisinde yer alan MCU dizini altında sunulmaktadır. Examples reposunun içinde devbox shell içindeyken aşağıdaki komutu çalıştırmalısınız.
PROJECT=mcu task clean build
examples/mcu/vxlib_demo/j722s-evm/c75ss0-0_freertos/ti-c7000 ve examples/mcu/vxlib_demo/j722s-evm/c75ss1-0_freertos/ti-c7000 içinde yer alan vxlib_demo.out dosyası artık C7 çekirdeklerinde çalıştırlabilir hale gelmiştir. Geliştirme kartı üzerinde çalıştırmak için Derlenmiş projenin U-Boot aşamasında çalıştırılması bölümündeki adımları takip edebilirsiniz. Bu örnek projede üretilen çıktılar UART1 arabirimi üzerinden iletilmektedir. İlgili pin bağlantılarına Pinout dokümantasyonundan ulaşabilirsiniz. VXLIB örnek projesinin çıktılarının terminal görüntüsü aşağıdaki gibidir.
VXLIB Demo start

------------------------
 T3 Gemstone VXLIB Test              
------------------------

Non-Padded 3x3 Box Filter

Input Image

1, 2, 3, 4, 5, 
6, 7, 8, 9, 10, 
11, 12, 13, 14, 15, 
16, 17, 18, 19, 20, 
21, 22, 23, 24, 25, 

Output Image

6, 7, 8, 
11, 12, 13, 
16, 17, 18, 

Mevcut MCU Projesine MakeFile Üzerinden Entegre Etme

VXLIB kütüphanesini mevcut MCU projenize entegre edebilmek için, SDK’ya ait kök dizin yolunu ve kullanacağınız .cpp dosyasını tanımlamanız gerekmektedir.
SDK_ROOT_PATH := ${MCU_PLUS_SDK_PATH}/..

FILES_cpp := \
	vxlib_demo.cpp \
Ardından, include edilen klasörler listesine (INCLUDES_common değişkeni) VXLIB’in src ve src/common dizinlerini aşağıdaki şekilde eklemelisiniz. VXLIB sürümünüze göre pathi değiştirmeniz gerekbilir.
	-I${SDK_ROOT_PATH}/vxlib_10_01_00_02/src \
	-I${SDK_ROOT_PATH}/vxlib_10_01_00_02/src/common \
Derleyiciye ait FLAGS parametrelerine (CFLAGS_common değişkeni), kütüphanenin doğru şekilde derlenebilmesi için gerekli olan aşağıdaki tanımlamaları eklemeniz gerekmektedir.
-DMCU_PLUS_SDK \
-DBUILD_C7X \
-DSOC=j722s \
--silicon_version=7524 \
Kütüphane yol tanımlarına (LIBS_PATH_common değişkeni), VXLIB’in derlenmiş kütüphane dizinini eklemelisiniz.
-i${SDK_ROOT_PATH}/vxlib_10_01_00_02/lib/Release \
Dahil edilen kütüphane dosyaları listesine (LIBS_common değişkeni) VXLIB kütüphanesinin adını aşağıdaki gibi eklemeniz gerekmektedir.
-lVXLIB_C7524.lib \
-lVXLIB_common_C7524.lib \
Projede .cpp dosyalarının derlenebilmesi için, OBJS ve DEPS tanımlarının yapıldığı satırın hemen altına aşağıdaki eklemelerin yapılması gerekmektedir.
OBJS += $(FILES_cpp:%.cpp=%.obj)
DEPS := $(FILES:%.cpp=%.dpp)
vpath %.cpp $(FILES_PATH)

$(OBJDIR)/%.obj %.obj: %.cpp
	@echo  Compiling: j722s:c75ss0-0:freertos:ti-c7000 $(OUTNAME): $<
	$(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -ppd=$(OBJDIR)/$(basename $@).dpp -ppa -fr=$(OBJDIR)/ -fp=$<
Bu adımların tamamlanmasının ardından VXLIB kütüphanesi, projeye Makefile üzerinden başarıyla entegre edilmiş olacaktır.

Mevcut CPP Dosyasına VXLIB Entegrasyonu

Makefile üzerinden gerekli yapılandırmalar tamamlandıktan sonra, VXLIB kütüphanesini kullanabilmek için ilgili header dosyasını projenizde yer alan .cpp dosyasına eklemeniz gerekmektedir. Bu adımın ardından, mevcut projeniz içerisinde VXLIB’e ait fonksiyonları ve tanımlamaları doğrudan kullanabilirsiniz. VXLIB kütüphanesinde yer alan modüllerin tamamına bu bağlantı üzerinden ulaşabilirsiniz.
#include <VXLIB_bufParams.h>
#include <VXLIB_types.h>
#include <vxlib.h>
Bu işlem ile birlikte VXLIB entegrasyonu tamamlanmış olacaktır.