ETSI の基本操作

コンパイルツールは、ETSI G.729 勧告『Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP)』で説明されている元の ETSI ファミリの基本操作をサポートしています。

ユーザコード内で ETSI の基本操作を使用するには、dspfns.h 標準ヘッダファイルをインクルードします。dspfns.h に提供されているコンパイラ組み込み関数は、Table 22 にリストされています。

Table 22. ARM Compilation Tools でサポートされる ETSI の基本操作

コンパイラ組み込み関数
abs_sL_add_cL_multL_sub_cnorm_l
addL_deposit_hL_negatemac_rround
div_sL_deposit_lL_satmsu_rsaturate
extract_hL_macL_shlmultshl
extract_lL_macNsL_shrmult_rshr
L_absL_msuL_shr_rnegateshr_r
L_addL_msuNsL_subnorm_ssub

ヘッダファイル dspfns.h も、C または C++ プログラムで使用するためのグローバル変数として、特定のステータスフラグを公開します。dspfns.h によって公開されたステータスフラグは、Table 23 にリストされています。

Table 23. ARM Compilation Tools で公開されている ETSI ステータスフラグ

ステータスフラグ説明
Overflow

オーバーフローステータスフラグ

通常、サチュレート関数には、オーバーフローについて固定作用があります。

Carry

キャリーステータスフラグ


Show/hide

#include <limits.h>
#include <stdint.h>
#include <dspfns.h>       // ETSI の基本操作をインクルード
int32_t C_L_add(int32_t a, int32_t b)
{
    int32_t c = a + b;
    if (((a ^ b) & INT_MIN) == 0)
    {
        if ((c ^ a) & INT_MIN)
        {
            c = (a < 0) ? INT_MIN :INT_MAX;
        }
    }
    return c;
}
__asm int32_t asm_L_add(int32_t a, int32_t b)
{
    qadd r0, r0, r1
    bx lr
}
int32_t foo(int32_t a, int32_t b)
{
    int32_t c, d, e, f;
    Overflow = 0;         // グローバルオーバーフローフラグを設定
    c = C_L_add(a, b);    // C のサチュレート加算
    d = asm_L_add(a, b);  // アセンブリ言語のサチュレート加算
    e = __qadd(a, b);     // ARM コンパイラ組み込み関数のサチュレート加算
    f = L_add(a, b);      // ETSI のサチュレート加算
    return Overflow ? -1 : c == d == e == f; // オーバーフローしなければ 1 を返す
}

Show/hide関連項目

  • C コードおよびコンパイラ組み込み関数の組み合わせとしての ETSI 基本操作の定義のためのヘッダファイル dspfns.h

  • 『コンパイラの使用』European Telecommunications Standards Institute(ETSI)の基本操作(5-12 ページ)

  • ETSI G.191 勧告:『Software tools for speech and audio coding standardization』

  • 『ITU-T Software Tool Library 2005 User's manual』(ETSI G.191 勧告の一部として含まれています)

  • ETSI G723.1 勧告:Dual rate speech coder for multimedia communications transmitting at 5.3 and 6.3 kbit/s

  • ETSI G.729 勧告:『Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP)』

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711