Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

Software libraries

From Texas Instruments Wiki
Jump to: navigation, search

TIBanner.png


C6x Software Libraries

Last updated: 03/02/2017



C6000 DSP Libraries
video platform video management video solutions video player
C6000 DSP Libraries


Introduction

This wikipage highlights and overview the various software libraries provided by Texas Instruments for its c6x family of devices. Various software libraries are provided to help reduce customer development time by providing optimized routines that can be used directly by the customers in their solutions or used as examples by customers as illustration on approaches to optimize for the c6x device family.


The software libraries are provided to serve a variety of end product needs:

  • Foundational Math and Signal Processing Libraries
  • Image and Video Processing Libraries
  • Telecommunication Libraries
  • Medical Libraries


The sections below will highlight each software library as well as provide links to obtain the software and get additional information. The library deliveries may vary in their content and form, but in general:

  • A number of the libraries are provided as free downloads and with open source licenses. Some do require a TI commercial license.
  • Most of the libraries are provided with source code which serves the purpose of providing c6x optimization examples as well as allows customization. However, some libraries are provide in object only. The library source code deliveries will include C models as well as processor optimized code
  • The libraries will include test benches and examples as providing usage examples as well as verification of correctness


Many libraries can be downloaded in a single package as part of the Multicore SDK:

http://www.ti.com/tool/bioslinuxmcsdk

Foundational Math and Signal Processing Libraries

MathLIB

The Texas Instruments math library (MathLIB) is an optimized floating-point math function library for C programmers using TI c6x floating point devices. These routines are typically used in computationally intensive real-time applications where optimal execution speed is critical. By using these routines instead of the routines found in the existing run-time-support libraries, you can achieve execution speeds considerably faster without rewriting existing code. The MATHLIB library includes all floating-point math routines currently provided in existing run-time-support libraries. These new functions can be called with the current run-time-support library names or the new names included in the math library.


Types of function provided:

  • Trigonometry (sine, cosine, arc tangent)
  • Logarithm
  • Exponent
  • Power
  • Reciprocal
  • Square Root
  • Division


In addition MathLIB supports:

  • Single and double precision
  • Single sample or vector inputs
  • C-callable routines which can be inlined and are fully compatible with the TMS320C6000 compiler tools



Helpful Links
Category Link
Latest Release 3.1.2.1 (Release Date: May 18, 2016)
Documentation MATHLIB Function Reference
Download MATHLIB Download Page
Support BIOS Embedded Software Forum
Bug Tracking Web Published IRs
License TI BSD License
FAQ Common Questions
MATHLIB Questions









IQMath

The IQMath library is collection of highly optimized and high precision fixed point mathematical functions that support variable Q point format for the variables. The library includes various arithmetic, trigonometric and mathematical functions. These routines are typically used in computationally intensive real-time applications where optimal execution speed & high accuracy is critical. By using these routines you can achieve execution speeds considerable faster than equivalent code written in standard ANSI C language. In addition, by providing ready-to-use high precision functions, TI IQmath library can shorten significantly your DSP application development time. Many commonly used IQMath kernels are provided in source to enable pipelining and help achieve significant performance improvements. The IQmath library release also includes example implementation of complex FFT and FIR kernels using the IQmath kernels.


Helpful Links
Category Link
Documentation Included in package
Download C64x+ IQMath Library
Support BIOS Embedded Software Forum
Bug Tracking
License Binary release: TI TSPA License
Source release: TI Commercial License
FAQ Common Questions
IQMath Questions



Note: The source IQMATH package contains complete inlined source for all the functions and is distributed only after an approval process. This package can be requested from the download link mentioned in the table. Approval may take between 1-5 working days. Please write to the software developers list to expedite the approval process.

FastRTS

The fastRTS library is highly optimized software emulation of floating point operations for fixed point devices (e.g., c64x, c64x+). The fastRTS library allows replacing the standard run time support library routines with functionally equivalent fastRTS routines. The release also includes C implementation for a subset of functions available with the fastRTS library. The C codes allow the user to inline these functions and get much improved performance

Helpful Links
Category Link
Documentation Included in package
Download FastRTS Library
Support BIOS Embedded Software Forum
Bug Tracking
License TI TSPA License
FAQ Common Questions
FastRTS Questions



DSPLIB

DSPLIB contains an extensive portfolio of commonly used digital signal processing routines that serve as building blocks for various signal processing applications. These routines are optimized to provide a user with the fast execution leveraging the capabilities of the c6x device. DSPLIB includes fixed point as well as floating point kernel since latest generation c6x processors support both fixed and floating point computations. Source code is provided to allow users to customize functions to match specific customer needs.

Functions supported by DSPLIB include:

  • Adaptive Filtering
  • Correlation
  • Fast Fourier Transform
  • Filtering and Convolution
  • Matrix Computations


Helpful Links
Category Link
Latest Release 3.4.0 (Released Aug 27, 2014)
Documentation Bundled with release
Download DSPLIB Download Page
Support BIOS Embedded Software Forum
License TI BSD License
FAQ Common Questions
DSPLIB Questions









Image and Video Processing Libraries

IMGLIB

The Image and Video processing Library (IMGLIB) is a collection of more than 70 building block kernels that can be used for image and video processing applications. The rich set of software routines included in IMGLIB perform image processing functionality that includes:

  • Compression and Decompression
    • Forward and Inverse DCT
    • Motion Estimation
    • Quantization
    • Wavelet Processing
  • Image Analysis
    • Boundary and Perimeter Estimation
    • Morphological Operations
    • Edge Detection
    • Image Histogram
    • Image Thresholding
  • Image Filtering & Format Conversion
    • Image Convolution
    • Image Correlation
    • Median Filtering
    • Color Space Conversion
    • Error Diffusion
    • Pixel Expansion


Helpful Links
Category Link
Latest Release 3.2.0 (Released May 12, 2014)
Documentation IMGLIB Function Reference
Download IMGLIB Download Page
Support BIOS Embedded Software Forum
Bug Tracking Web Published IRs
License TI BSD License
FAQ Common Questions
IMGLIB Questions

See Also









Video Analytics & Vision Library (VLIB)

VLIB is software library of more than 40 royalty-free kernels from Texas Instruments accelerates video analytics development and increases performance up to 10 times. VLIB is an extensible library that is optimized for the C6x DSP core and is available royalty-free. This collection of 40+ kernels provide the ability to perform:

  • Background Modeling & Subtraction
  • Object Feature Extraction
  • Tracking & Recognition
  • Low-level Pixel Processing


VLIB provides an extensible foundation for the following applications:

  • Video Analytics
  • Video Surveillance
  • Automotive Vision
  • Embedded Vision
  • Game Vision
  • Machine Vision
  • Consumer Electronics


Helpful Links
Category Link
Documentation Included in package
Download VLIB Download Page
Support BIOS Embedded Software Forum
Bug Tracking
License TI TSPA
FAQ Common Questions
VLIB Questions


See Also




VICP Signal Processing Library

The VICP is Video and Imaging CoProcessor available on dm644x and dm64x devices. The VICP signal processing library enables faster development time by providing various ready to use functions for signal processing. By offloading pixel processing intensive operations such as image unpack, color space conversion, median filter and alpha-blending to the VICP, the dsp headroom can be significantly improved.


Helpful Links
Category Link
Documentation Included in package
Download VICP Download page
Support BIOS Embedded Software Forum
Bug Tracking
License TI Commercial License
FAQ Common Questions
VICP Questions


See Also



Telecommunications Libraries

VoLIB

VoLIB provides components that, together, facilitate the development of the signal processing chain for Voice over IP applications such as infrastructure, enterprise, residential gateways and IP phones. Together with optimized implementations of ITU-T voice codecs, that can be acquired from TI separately, the components of VoLIB satisfy most of the fundamental building blocks required to develop a complete VoIP signal processing chain.

VOLIB comprises a collection of stand-alone voice processing components that provides the following functionality:

  • Line echo cancellation
  • Single and multi-tone detection and generation
  • Voice activity detection
  • Noise generation
  • Packet loss concealment
  • Caller ID generation and detection
  • High level compensation
  • Signal and noise level estimation
  • Voice quality enhancement

volib.gif


These blocks may be quickly linked with relative ease in order to suit the needs of most voice processing systems. The components are reliable field-hardened voice processing building blocks from Telogy’s VoIP solutions.


Each package comprises one or more Embedded Communication Object (ECO) components. An ECO is a collection of portable ANSI-C functions and data structures encapsulated in a strict object oriented manner to facilitate instantiation of multiple independent object instances. Each ECO has, at it's heart, an algorithm that has been optimized to operate efficiently in a real-time embedded communications environment.


Helpful Links
Category Link
Latest Release 2.1.0 (Released July 10, 2013)
Documentation VoLIB Fact Sheet
Download VoLIB Download Page
Support BIOS Embedded Software Forum
Bug Tracking Web Published IRs
License TI TSPA License
FAQ Common Questions
VOLIB Questions









FaxLIB

The FAX Library (FAXLIB) provides components that allow a development team to reduce time-to-market by providing the major building blocks of a fax-relay processing system. G3 Fax relay processing is comprised of two modules: Fax Modem (FM), and Facsimile Interface Unit (FIU). FM implements the modulation/demodulation functions for V.21, V.27ter, V.29, V.17 and V.33, and HDLC framing/de-framing. FIU implements T.30 protocol processing, packet network facsimile processing, and compensations for network impairments: delay, jitter, and packet loss. It receives messages including demodulated data from FM and performs protocol conversion to a digital facsimile protocol (i.e. T.38) for transmission over the packet network. Likewise, in the receive direction, data packets are converted to T.30 protocol and passed to FM for HDLC framing if necessary and modulation for transmission over the analog connection.

The components provided in FAXLIB can be used together to implement complete fax over packet functionality as illustrated in the Figure below or used as separate components.


FAXLIB.gif

FAXLIB includes:

The Facsimile Modem Unit (FM) is a software module that performs all the modulation and demodulation functions required of a fax modem: demodulation of PCM data received at the analog interface, and modulation of facsimile protocol messages received from the FIU. The FM module has the following capabilities and features:

  • V.21 300 bps channel 2 (1750 Hz nominal frequency) binary signal modulation and demodulation
  • HDLC framing / deframing (0 bit insertion & removal, CRC generation & checking)
  • V.27ter (2400 / 4800 bps),
  • V.29 (7200 / 9600 bps),
  • V.17 (7200 / 9600 / 12000 / 14400 bps),
  • V.33 (12000 / 14400 bps) high-speed data modulation and demodulation
  • Control the generation of fax tones (i.e. CNG / CED) by an external tone generation utility through API's


The Facsimile Interface Unit (FIU) is a software module that process messages (including data) from the Facsimile Modem Unit (FM) for transmission over a packet network and vice versa. Likewise, it process digital data received from the network and passes them to FM for transmission over the analog connection. In doing so, the FIU performs protocol conversion between Group 3 facsimile protocols and the digital facsimile protocol employed over the packet network. The FIU performs the following functions:

  • T.30 protocol processing
  • Examination and alteration of binary signaling messages to ensure compatibility of the facsimile transfer
  • Packet network facsimile protocol processing
  • Compensation for network impairments: packet loss, jitter and delay
  • FAXMONTM real-time debug tracing


The High-level Data Link Control (HDLC) processing utility software that performs HDLC formatting and de-formatting of transmit and receive data streams.


Helpful Links
Category Link
Latest Release 2.1.0 (Release Date: May 8, 2013)
Documentation c55x Users Manual
c64x+ Users Manual
c66x Users Manual
Download FAXLIB Download Page
Support BIOS Embedded Software Forum
Bug Tracking FAXLIB Bug List
License TI TSPA License
FAQ Common Questions
FAXLIB Questions


See Also

  • ITU-T Recommendation T.38: Procedures for real-time Group 3 facsimile communication over IP networks









AER / AEC

The AER serves the purpose of removing and minimizing the impact of acoustic echo in a phone or other similar devices or systems. The acoustic echo is generated by the coupling between the speaker and the microphone of the same device or system. When the system is operated in hands-free mode, the acoustic echo can be very strong, and may be even higher than the direct speech power generated by the near-end talker.


Helpful Links
Category Link
Latest Release 17.0.0 (Release Date: September 11, 2013)
Documentation AER Users Manual
AER Fact Sheet
Download AER Download
Support BIOS Embedded Software Forum
Bug Tracking
License TI Commercial License
FAQ Common Questions
AER Questions









Medical Libraries

STK-MED

The TI Embedded Processor Software Toolkit for Medical Imaging (STK-MED) is a collection of several standard ultrasound and optical coherence tomography (OCT) algorithms for TI’s C6x architecture. The algorithms showcase how medical imaging functions can leverage the C6x architecture for efficient performance and low power consumption. The goal of STK-MED is to shorten customer development time of medical imaging systems by providing optimized implementations of commonly used processing blocks. The source code contained in the STK-MED can easily be extended or modified to develop customized and differentiated modules.

The STK-MED includes the following optimized modules:

  • B-Mode processing for ultrasound
  • Doppler Processing functions for 1D Color Flow, 2D Color Flow, Wall Filter and Power Estimator for ultrasound
  • RF demodulation and decimation for ultrasound
  • Scan Conversion for ultrasound
  • Cubic Spline Interpolation for OCT
  • FFT and IFFT for OCT
  • Magnitude Computation for OCT
  • Log Computation for OCT
  • Optimized math utilities including affine wrap


Helpful Links
Category Link
Documentation Included in STK-MED package
Download STK-MED Download Page
Support BIOS Embedded Software Forum
Bug Tracking
License TI BSD License
FAQ Common Questions
STK-MED Questions


See Also



Codecs

TI provides a collection of speech, audio, image, and video codecs optimized for its devices.

  • Speech codecs: G.711(PCM), G.726(ADPCM), G.728, G.722, G.722.1, G.722.2
  • Video codecs: MPEG4, MPEG2, H.264
  • Image codecs: JPEG
  • Audio codecs: AAC, MP3, WMA


Helpful Links
Category Link
Documentation Included in codec packages
Download c66x Codecs
c64x+ Codecs
Support Multimedia Codecs Software Forum
Bug Tracking
License TSPA
FAQ See Multimedia Codecs Software Forum



Library Object File Format

The software libraries mentioned in this page were released with either COFF or ELF or both object file formats. Refer to A Brief History of TI Object File Formats for detailed information about these two formats.

COFF is not supported any longer by Code Generation Tool (CGT) version 8.0 and later, but older version of CGT may have been used when some libraries were released. The CCS projects in the library release package may still contain COFF build targets. If CGT 8.x is used to build these projects, one will see errors when those COFF targets are being built. The workaround is to remove those COFF build targets from the CCS projects until new releases of libraries using CGT 8.x are available. For example, if one tries to rebuild DSPLIB source code, the following targets need to be removed from the CCS project:

  • dsplib.a66
  • dsplib.a66e
  • dsplib_cn.a66
  • dsplib_cn.a66e

Similarly, this should be done when one tries to use CGT 8.x to rebuild other libraries which have CCS project with COFF targets.

Feedback and Support on Software Libraries

If you have issues with or questions about the DSP software libraries, you can look for support from TI's E2E community forums. It is recommended that you place your question tagged according to the specific library (e.g., 'DSPLIB'). The tag is important as it lets the TI support team filter your questions to the right people. Without the tag, responses to your posts may be delayed.

Bug Reports and feature requests

If you believe you have found a bug or if you wish to see a new feature in the future release of the libraries, you can report it to the developers list mentioned below and provide as much detail as you can on your requests. Before filing a bug report or a feature request, you may want to post on the TI E2E forums with a question about the issue. It is also recommended that you search or browse forum items to make sure you are not posting a duplicate request of an existing forum post.




E2e.jpg
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Software libraries here.

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity