TIOVX User Guide
main_page.md
1 # Overview {#mainpage}
2 
3 [TOC]
4 
5 # Introduction
6 
7 TIOVX is TI's implementation of OpenVX Standard.
8 
9 TIOVX allows users to create vision and compute applications using OpenVX API.
10 These OpenVX applications can be executed on TI SoCs like TDA2x, TDA3x and TDA4x. TIOVX is fully conformant
11 to OpenVX v1.1 specification. TIOVX also provides optimized OpenVX kernels for C66x DSP. An extension API
12 allows users to integrate their own natively developed custom kernels and call them using OpenVX APIs.
13 Examples showing usage of TIOVX as part of the larger system, ex, camera input and display output are also
14 provided as part of Processor SDK Vision.
15 
16 Top level block diagram of TIOVX is shown below.
17 
18 \if DOCS_J7
19 \image html tiovx_block_diagram_j7.png "TIOVX Block Diagram" width=600
20 \else
21 \image html tiovx_block_diagram.png "TIOVX Block Diagram" width=600
22 \endif
23 
24 
25 The components of this diagram are described below
26 
27 TIOVX Module | Description
28 -------------------------------------|------------
29 Khronos Conformance Test | OpenVX conformance test from Khronos to make sure an implementation implements OpenVX according to specification
30 TI Extension Conformance Test | Additional test cases from TI to test TI extention interfaces
31 OpenVX API | OpenVX API as defined by Khronos
32 TIOVX API | TI extensions and additional APIs in order to efficiently use OpenVX on TI platforms
33 TIOVX Framework | TI's implementation of OpenVX spec. This layer is agnostic of underlying SoC, OS platform
34 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.
35 TIOVX Kernel Wrapper | Kernel wrappers allow TI and customers to integrate a natively implemented kernel into the TIOVX framework.
36 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.
37 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
38 
39 
40 ---
41 
42 # Directory Structure {#TIOVX_PACKAGE_CONTENTS}
43 
44 The following describes the contents of the package.
45 
46 Folder | Description
47 -------|-----
48 conformance_tests/kernels | Kernels added only for test purposes (to test target kernel APIs)
49 conformance_tests/test_conformance | Khronos OpenVX conformance test
50 conformance_tests/test_engine | ^
51 conformance_tests/test_data | Data files used for Khronos Conformance test, TI test suite, and tutorial input data files
52 conformance_tests/test_executable | Khronos OpenVX conformance test executable (PC HOST emulation mode only)
53 conformance_tests/test_tiovx | Additional test cases for Khronos OpenVX APIs and TI extention APIs
54 docs | User documentation
55 include/VX | Khronos OpenVX interface
56 include/TI | TI OpenVX extension interface
57 kernels/openvx-core | OpenVX defined kernels
58 kernels* | TI vendor-specific kernels, including unit test for the kernels
59 source/framework | TI OpenVX implementation
60 source/include | ^
61 source/vxu | ^
62 source/platform | TI OpenVX platform adaptation layer
63 tools | OpenVX use case and kernel wrapper code generation tool
64 tutorial | TI OpenVX tutorials
65 utils | Helpful utilities like image readers
66 out | Build generated files and executables
67 lib | Pre-built dependency libraries (PC) and tiovx libraries copied from out folder at end of build
68 
69 
70 Note: since the 8.6 release the below folders have been moved to the following locations:
71 
72 
73 8.6 Location | 9.0 (and beyond) Location
74 ----------------------|--------------------------
75 tiovx/concerto | sdk_builder/concerto
76 tiovx/kernels_j7/hwa | imaging/kernels/hwa
77 tiovx/kernels_j7/tidl | c7x-mma-tidl/arm-tidl/tiovx_kernels/tidl