eXpressDSP アルゴリズム・スタンダード – xDAIS デベロッパーズ・キットと xDM




xDAIS and xDM

The eXpressDSP™ Algorithm Interoperability Standard (xDAIS) and the eXpressDSP Digital Media (xDM) standard fully leverage the ability of DSPs to perform a wide range of multimedia functions on a single device. eXpressDSP compliance is achieved by adhering to these standards. To deliver today’s multifunction DSP-based applications, systems providers must often acquire algorithms from multiple sources and then integrate them together into a working whole. A key factor that determines "time to revenue" is how quickly these different algorithms can be made to work together.

The xDAIS and xDM standards provide a set of coding conventions and application programming interfaces (APIs) that enables algorithms to be integrated much more quickly. xDAIS eliminates problems caused by algorithms implementing hard-coded access to system resources that must be shared with other algorithms. xDM specifies a standard API for the application to call a particular algorithm class (see below for explanation of algorithm class), enabling an integrator to quickly change to algorithm from a different source if different functionality or performance is required. The APIs defined in the xDM standard are also referred to as the VISA (video, imaging, speech and audio) APIs.

By establishing standards for algorithms used on TI DSPs, TI benefits both algorithm providers and systems integrators. Because algorithms from third parties can be easily integrated by OEMs using TI DSPs and software frameworks, the market for third-party algorithms increases. Likewise, algorithm standardization increases the quantity and quality of algorithms available for use by OEMs. To assist developers in producing compliant algorithms, TI provides tools and frameworks for creating and testing standardized algorithms.

xDAIS and xDM Advantages
  • Well-established standard first introduced in 1999 proven in numerous applications
  • Significant reduction in integration time as algorithms do trash each others resources
  • Easy comparison of algorithms from multiple different sources in the same application
  • Access to broad range of compliant algorithms available from multiple TI DSP Third Parties eliminates need to custom develop complex algorithms
  • Algorithms work out-of-the-box with eXpressDSP Multimedia Framework Products, such as Codec Engine

How to Create and Verify an eXpressDSP-compliant algorithm - See below.

xDAIS and xDM Technical OvervieweXpressDSP Digital Media (xDM) standard - The xDM standard defines APIs through which an application invokes a particular class of codec, such as video decode or audio encode. xDM APIs are defined for the following codecs classes:
  • Video decode
  • Video encode
  • Image decode
  • Image encode
  • Speech/Voice decode
  • Speech/Voice encode
  • Audio decode
  • Audio encode
By standardizing these APIs, xDM enables an application framework to support multiple codecs of the same type without extensive modification. For example, a portable media player might need to play a mix of AAC, MP3, and WMA-encoded tracks. Using xDM, the framework developer can create a single audio decode task that can invoke which ever decoder is needed for the track selected by the user, rather than having to have multiple task each designed to handle the custom requirements of each audio codec. In addition, it is straightforward for developers to change from one MP3 decoder to another, for example, when evaluating which codec is the best for their system.eXpressDSP™ Algorithm Interoperability Standard (xDAIS) - The xDAIS standard is designed to enable multiple algorithms to coexist in an application by preventing 'hard-coded' use of critical system resources, such as memory and DMA, in the algorithm. In contrast, the algorithm must implement two interfaces (IALG and IDMA; see definitions below) that are then queried by the application framework to determine the memory and DMA needs of the codec:
  • IALG provides an interface the application framework queries for use of memory resources. IALG enables sharing of scratch memory between algorithms that will not preempt each other. This allows more efficient use of memory since total scratch memory requirements may be reduced.
  • IDMA3 provides an interface the application framework queries for use of EDMA3 resources on TMS320C64x+™ DSP core-based devices. Algorithms can request dedicated EDMA3 resources that they always own or dynamically share a pool of DMA channels with other algorithms. Please note that IDMA3 should not be confused with the IDMA HW on the C64x+ DSP core-based devices. IDMA3 does not use or program the IDMA HW. C64x+DSP core-based devices include:
    • TMS320C6455-850
    • TMS320C6455-750
    • TMS320C6455-1000
    • TMS320C6454-850
    • TMS320C6454-720
    • TMS320C6454-1000
    • TMS320DM6441
    • TMS320DM6443
    • TMS320DM6446

The framework can then ensure that the resources granted are not already in use by another algorithm. As a result, it is easier to reuse algorithms that are eXpressDSP compliant, especially when utilizing algorithms from multiple sources.

In addition to the resource sharing interfaces, xDAIS also specifies 46 "common sense" coding guidelines that algorithms must implement, such as being reentrant or avoiding C programming techniques that are prone to introducing errors.

For full details of xDAIS and xDM APIs and coding conventions, please download the xDAIS Developer’s Kit.

xDAIS Developer’s Kit - Download

The xDAIS developer’s kit is an eXpressDSP software component for algorithm developers who want to implement the interfaces of the xDAIS and xDM standards. The xDAIS Developer’s Kit provides the header files, specifications, and documentation needed to implement xDAIS-compliant algorithms.

xDAIS Developer’s Kit v5.21 includes the following:

  • XDAIS and xDM Core Content: This includes standard headers (ialg.h, etc), sample algorithms and algorithm API headers and libraries
  • DSP Platform Support: The C64x+ DSP core-based devices are fully supported.
  • Previous versions: For versions of the xDAIS Developer’s Kit that support the TMS320C2000™ and TMS320C5000™ DSP platform, as well as other devices in the TMS320C6000™ DSP platform
  • Technical Documentation: The latest xDAIS and xDM standard documentation, application notes and getting started guides
    • TMS320 DSP Algorithm Standard API Reference - spru360e
    • TMS320 DSP Algorithm Standard Rules and Guidelines - spru352g
    • Technical Overview of eXpressDSP-Compliant Algorithms for DSP Software Products - spra579c
    • Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System - spra580b
    • Writing a C Callable Assembly Function Using the TMS320C2000 - spra590
    • Using the TMS320 DSP Algorithm Standard in a Static DSP System - spra577
    • Using DMA with Framework Components for C64x+ - spraag1
    • Using External References in eXpressDSP-Compliant Algorithms - spra929
    • xDM User’s Guide - spruec8b
    • Codec Engine Algorithm Creator User’s Guide - sprued6b
    • Codec Engine Server Integrator’s Guide - sprued5a

How to Create and Verify an eXpressDSP-Compliant Algorithm

How to create and verify an algorithm that complies with xDAIS and xDM

Third-party algorithm providers and system integrators who wish to have their algorithms comply with the eXpressDSP standards need to perform to main steps:
  • Ensure their algorithm complies with the rules and API definitions specified in the xDAIS Developer’s Kit
  • Test their algorithms function in the Codec Engine framework. Codec Engine requires eXpressDSP-compliant algorithms
These steps are described in more detail below, along with links to appropriate documentation.

Before You Begin: Download the Codec Engine, Framework Components and the xDAIS Developer’s Kit to get started, as these contain all relevant specifications, documentation, and examples.

How to modify your algorithm to comply with xDM and xDAIS

Algorithm developers will need to perform three main steps to create an algorithm that is compliant with xDAIS and xDM:

  • Review the coding guidelines and ensure that the algorithm code meets these. The coding guidelines are described in spru360.pdf and spru352.pdf
  • Eliminate all direct access by the algorithm to physical resources such as memory, DMA, or I/O peripherals. Memory and DMA resources must be requested through the framework using the IALG and IDMA3 interfaces. The IALG and IDMA3 interfaces are documented in spru360.pdf and spru352.pdf. For additional information on use of IAGL, please refer to spra579.pdf, spra580.pdf, spra590,pdf, and spra577.pdf. For additional information on IDMA3, please refer to spraag1.pdf. Any other peripheral access must be moved out to the framework with the algorithm simply operating on data buffers. If there are some additional hardware resources, such as timers or accelerators, that an algorithm must refer, please refer to spra929.pdf for guidance on this.
  • Make the algorithm support the xDM APIs for invocation. The xDM APIs are documented in spruec8.pdf
How to test your algorithm in Codec Engine for xDM and xDAIS compliance
    In addition to completing the steps listed for xDAIS and xDM compliance list above, developers must do the following steps:
  • Wrap the algorithm in an XDC package so it conforms to the ICODEC package interface and directory naming conventions. The process for doing this is described in sprued6.pdf.
  • You should then select the appropriate example from the examples directory. For an audio decoder, you would select the audio decode example. To simplify the test process, you should execute the codec locally on the DSP. To do this, chose the local.cfg file and replace the name of the copy codec used in the example with your own codec. You can use the in.dat file to provide input data for testing.
  • If you wish your codec to be used on ARM-DSP devices such as the DM6446, you must also test your codec in a remote execution configuration by creating a DSP server. The guidelines for creating a DSP server are found in sprued5.pdf.
ダウンロード 字幕付きのビデオを表示 ビデオ



TMDXDAISXDM eXpressDSP アルゴリズム・スタンダード – xDAIS デベロッパーズ・キットと xDM



デジタル信号プロセッサ (DSP)
TMS320C6454 C64x+ 固定小数点 DSP - 最大 1GHz、64 ビット EMIFA (非同期 EMIF) と 32/16 ビット DDR2 と 1Gbps イーサネット搭載 TMS320C6455 C64x+ 固定小数点 DSP、最大 1.2GHz、64 ビット EMIFA、32 および 16 ビット DDR2、1Gbps イーサネット TMS320DM6431 デジタル メディア プロセッサ TMS320DM6431Q 最大 2400MIPS、300MHz クロック・レート、デジタル・メディア・プロセッサ TMS320DM6433 デジタル メディア プロセッサ TMS320DM6435 デジタル メディア プロセッサ TMS320DM6435Q 最大 4800MIPS、600MHz クロック レート、1 x McASP、1 x McBSP 搭載、デジタル メディア プロセッサ TMS320DM6437 デジタル メディア プロセッサ TMS320DM6437Q 最大 4800MIPS、600MHz クロック レート、1 x McASP、2 x McBSP 搭載、デジタル メディア プロセッサ TMS320DM6441 DaVinci デジタル メディア システムオンチップ TMS320DM6443 DaVinci デジタル メディア システムオンチップ TMS320DM6446 DaVinci デジタル メディア システムオンチップ


10 をすべて表示
種類 タイトル 最新の英語版をダウンロード 日付
アプリケーション・ノート Using DMA with Framework Components for C64x+ (Rev. A) 2007年 10月 29日
ユーザー・ガイド Codec Engine Algorithm Creator User's Guide (Rev. C) 2007年 9月 30日
ユーザー・ガイド Codec Engine Server Integrator's User's Guide (Rev. B) 2007年 9月 30日
ユーザー・ガイド TMS320 DSP Algorithm Standard API Reference (Rev. E) 2007年 2月 20日
ユーザー・ガイド TMS320 DSP Algorithm Standard Rules and Guidelines (Rev. G) 2007年 2月 20日
ユーザー・ガイド XDAIS-DM (Digital Media) User Guide (Rev. B) 2007年 1月 31日
アプリケーション・ノート Using External References in eXpressDSP-Compliant Algorithms (Rev. A) 2003年 8月 31日
アプリケーション・ノート Technical Overview of eXpressDSP-Compliant Algorithms for DSP Software Producers (Rev. C) 2002年 8月 30日
アプリケーション・ノート Using the TMS320 DSP Algorithm Standard in a Dynamic DSP System (Rev. B) 2000年 11月 30日
アプリケーション・ノート Using the TMS320 DSP Algorithm Standard in a Static DSP System (Rev. B) 2000年 11月 30日



TMDMFP マルチメディア・フレームワーク製品(MFP)- コーデック・エンジン、フレームワーク・コンポーネントおよび XDAIS


TI E2E™ フォーラムでは、TI のエンジニアからの技術サポートを提供


コンテンツは、TI 投稿者やコミュニティ投稿者によって「現状のまま」提供されるもので、TI による仕様の追加を意図するものではありません。使用条件をご確認ください。

TI 製品の品質、パッケージ、ご注文に関するお問い合わせは、TI サポートをご覧ください。