TI对OpenVX标准的实现-TIOVX

TIOVX是TI对OpenVX标准的实现

TIOVX允许用户使用OpenVX API创建视觉和计算应用程序。这些OpenVX应用程序可以在TDA2x、TDA3x和TDA4x等TI SoC上执行。TIOVX完全符合OpenVX v1.1规范。TIOVX还为C66x DSP提供了优化的OpenVX内核。扩展API允许用户集成自主开发的自定义内核,并使用OpenVX API调用它们。作为处理器SDK Vision的一部分,还提供了显示TIOVX作为更大系统的一部分使用的示例,例如,相机输入和显示输出。

TIOVX的顶级框图如下所示。

 

TIOVX框图

该图的组件描述如下

TIOVX Module

Description

Khronos Conformance Test

OpenVX conformance test from Khronos to make sure an implementation implements OpenVX according to specification

TI Extension Conformance Test

Additional test cases from TI to test TI extention interfaces

OpenVX API

OpenVX API as defined by Khronos

TIOVX API

TI extensions and additional APIs in order to efficiently use OpenVX on TI platforms

TIOVX Framework

TI's implementation of OpenVX spec. This layer is agnostic of underlying SoC, OS platform

TIOVX Platform

This layer binds TIOVX framework to a specific platform. Ex, Processor SDK platform for TDA4x SOCs. This layer also binds TIOVX framework to a specific OS like Linux or TI-RTOS.

TIOVX Kernel Wrapper

Kernel wrappers allow TI and customers to integrate a natively implemented kernel into the TIOVX framework.

Examples

These are examples which show usage of TIOVX with other system level compoenents. These are not included in TIOVX package. Users should refer to SDK for these examples.

User Kernels / Target Kernels

User kernels is an interface to integrate user kernels on HOST CPU using standard Khronos OpenVX APIs. Target kernels is a TI specific interface to integrate user kernels on target CPU like DSP


Directory Structure

The following describes the contents of the package.

Folder

Desc

conformance_tests/kernels

Kernels added only for test purposes (to test target kernel APIs)

conformance_tests/test_conformance

Khronos OpenVX conformance test

conformance_tests/test_engine

conformance_tests/test_data

Data files used for Khronos Conformance test, TI test suite, and tutorial input data files

conformance_tests/test_executable

Khronos OpenVX conformance test executable (PC HOST emulation mode only)

conformance_tests/test_tiovx

Additional test cases for Khronos OpenVX APIs and TI extention APIs

docs

User documentation

include/VX

Khronos OpenVX interface

include/TI

TI OpenVX extension interface

kernels/openvx-core

OpenVX defined kernels

kernels*

TI vendor-specific kernels, including unit test for the kernels

source/framework

TI OpenVX implementation

source/include

source/vxu

source/platform

TI OpenVX platform adaptation layer

tools

OpenVX use case and kernel wrapper code generation tool

tutorial

TI OpenVX tutorials

utils

Helpful utilities like image readers

out

Build generated files and executables

lib

Pre-built dependency libraries (PC) and tiovx libraries copied from out folder at end of build

Note: since the 8.6 release the below folders have been moved to the following locations:

8.6 Location

9.0 (and beyond) Location

tiovx/concerto

sdk_builder/concerto

tiovx/kernels_j7/hwa

imaging/kernels/hwa

tiovx/kernels_j7/tidl

c7x-mma-tidl/arm-tidl/tiovx_kernels/tidl

Build Option

Description

Default Setting

PROFILE

Determines which profile to build for
Valid values are:
release, debug, all

all

BUILD_EMULATION_MODE

Builds PC emulation mode

yes

BUILD_EMULATION_ARCH

PC emulation architecture.
Valid values are: X86 x86_64 all

x86_64

BUILD_TARGET_MODE

Builds for target SoC platform like TDAxx

yes

BUILD_CONFORMANCE_TEST

Builds entire test suite executable

yes

BUILD_IVISION_KERNELS

Builds iVision kernels (EVE_SW_PATH required to be set for this build)

no

BUILD_BAM

Builds DMA wrapper (DMAUTILS_PATH and ALGFRAMEWORK_PATH required to be set for this build)

no

BUILD_TUTORIAL

Builds OpenVX tutorial

yes

BUILD_LINUX_MPU

Builds for A72 Linux target (NOT used in PC HOST emulation mode

yes

BUILD_EVE

Builds for EVE platform (ARP32CGT_ROOT and EVE_SW_PATH required to be set for this build)

no

BUILD_SDK

Builds for SDK SW platform
Valid values are,
psdkra for Processor SDK RTOS J7 platform

psdkra

BUILD_IGNORE_LIB_ORDER

When set to yes, it ignores the static library order listed in makefiles when building on the PC.

yes

BUILD_CT_KHR

Builds and includes the Khronos OpenVX 1.1 conformance tests suite.

yes

BUILD_CT_TIOVX

Builds and includes the TI-added tests suite (for TI extensions and additional rohbustness testing).

yes

BUILD_CT_TIOVX_TEST_KERNELS

Builds and includes the TI-added tests suite (for testing custom kernel interface).

yes

BUILD_CT_TIOVX_IVISION

Builds and includes the tests for IVISION kernels test suite.

no

BUILD_CT_TIOVX_TIDL

Builds and includes the tests for TIDL kernel test suite.

yes

BUILD_CT_TIOVX_HWA

Builds and includes the tests for HWA kernels test suite.

yes

BUILD_CT_TIOVX_HWA_NEGATIVE_TESTS

Builds and includes a large set of negative tests for HWA kernels

yes

BUILD_CT_TIOVX_HWA_DISPLAY_TESTS

Builds and includes display test cases
Note: in order to run on J7 platform, a display must be connected

no

BUILD_CT_TIOVX_HWA_CAPTURE_TESTS

Builds and includes a large set of negative tests for HWA kernels
Note: in order to run on J7 platform, 4 IMX390 cameras must be connected to a Fusion board which is connected to the EVM

no

BUILD_CT_TIOVX_HWA_CSITX_TESTS

Builds and includes csitx test cases
Note: in order to run on J7 platform, the following setup is required:

  • EVM Board Configuration: By default DPHY is connected to FPD Panel (DSI-TX), it has to be changed to DSI FPC(CSI-TX).
  • J7X LI(Leopard Imaging) Serial Capture Board
  • FPC Cable: Connect Csitx to Csirx.

This test uses CSIRX to receive the data transmitted by CSITX, hence lane speed for both modules should be same. This tests confgiures the CSITX lane speed to 800 Mbps.

no


Kernel

C66x 1

C66x 2

HWA

PC Emulation Support

Absolute Difference

Cache

Cache

 

Yes

Accumulate

Cache

Cache

 

Yes

Accumulate Squared

Cache

Cache

 

Yes

Accumulate Weighted

Cache

Cache

 

Yes

Arithmetic Addition

Cache

Cache

 

Yes

Arithmetic Subtraction

Cache

Cache

 

Yes

Bitwise AND

Cache

Cache

 

Yes

Bitwise EXCLUSIVE OR

Cache

Cache

 

Yes

Bitwise INCLUSIVE OR

Cache

Cache

 

Yes

Bitwise NOT

Cache

Cache

 

Yes

Box Filter

Cache

Cache

 

Yes

Canny Edge Detector

Cache

Cache

 

Yes

Channel Combine

Cache

Cache

 

Yes

Channel Extract

Cache

Cache

 

Yes

Color Convert

Cache

Cache

 

Yes

Convert Bit depth

Cache

Cache

 

Yes

Custom Convolution

Cache

Cache

 

Yes

Dilate Image

Cache

Cache

 

Yes

Equalize Histogram

Cache

Cache

 

Yes

Erode Image

Cache

Cache

 

Yes

Fast Corners

Cache

Cache

 

Yes

Gaussian Filter

Cache

Cache

 

Yes

Non Linear Filter

Cache

Cache

 

Yes

Harris Corners

Cache

Cache

 

Yes

Histogram

Cache

Cache

 

Yes

Gaussian Image Pyramid

Cache

Cache

VPAC_MSC*

Yes

Laplacian Image Pyramid

Cache

Cache

 

Yes

Reconstruction from a Laplacian Image Pyramid

Cache

Cache

 

Yes

Integral Image

Cache

Cache

 

Yes

Magnitude

Cache

Cache

 

Yes

Mean and Standard Deviation

Cache

Cache

 

Yes

Median Filter

Cache

Cache

 

Yes

Min, Max Location

Cache

Cache

 

Yes

Optical Flow Pyramid (LK)

Cache

Cache

 

Yes

Phase

Cache

Cache

 

Yes

Pixel-wise Multiplication

Cache

Cache

 

Yes

Remap

Cache

Cache

 

Yes

Scale Image

Cache

Cache

VPAC_MSC*

Yes

Sobel 3x3

Cache

Cache

 

Yes

TableLookup

Cache

Cache

 

Yes

Thresholding

Cache

Cache

 

Yes

Warp Affine

Cache

Cache

 

Yes

Warp Perspective

Cache

Cache

 

Yes

  • Subset of configuration options and or accuracy tradeoff to speed is to be considered for this HWA implementation.

TI Extension Kernels

Note: the below node implementation locations have changed from the 8.6 to 9.0 releases. The new locations can be referenced in Directory Structure document.

Kernel

Target

PC Emulation Support

tivxCaptureNode

CSIRX

No

tivxDisplayNode

DSS

No

tivxTIDLNode

C7x + MMA

Yes

tivxVpacVissNode

VPAC_VISS

Yes

tivxVpacLdcNode

VPAC_LDC

Yes

tivxVpacNfGenericNode

VPAC_NF

Yes

tivxVpacNfBilateralNode

VPAC_NF

Yes

tivxVpacMscScaleNode

VPAC_MSC

Yes

tivxVpacMscPyramidNode

VPAC_MSC

Yes

tivxDmpacSdeNode

DMPAC_SDE

Yes

tivxDmpacDofNode

DMPAC_DOF

Yes

tivxCsitxNode

CSITX

No

tivxDisplayM2MNode

DSS

No

 

 

参考文献链接

https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/latest/exports/docs/tiovx/docs/user_guide/index.html

 

posted @ 2024-05-07 03:45  吴建明wujianming  阅读(87)  评论(0编辑  收藏  举报