亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mathadv.c

?? 完整的EVRC壓縮解壓縮算法源碼,附帶一個簡單的例子程序。
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**********************************************************************
Each of the companies; Lucent, Motorola, Nokia, and Qualcomm (hereinafter 
referred to individually as "Source" or collectively as "Sources") do 
hereby state:

To the extent to which the Source(s) may legally and freely do so, the 
Source(s), upon submission of a Contribution, grant(s) a free, 
irrevocable, non-exclusive, license to the Third Generation Partnership 
Project 2 (3GPP2) and its Organizational Partners: ARIB, CCSA, TIA, TTA, 
and TTC, under the Source's copyright or copyright license rights in the 
Contribution, to, in whole or in part, copy, make derivative works, 
perform, display and distribute the Contribution and derivative works 
thereof consistent with 3GPP2's and each Organizational Partner's 
policies and procedures, with the right to (i) sublicense the foregoing 
rights consistent with 3GPP2's and each Organizational Partner's  policies 
and procedures and (ii) copyright and sell, if applicable) in 3GPP2's name 
or each Organizational Partner's name any 3GPP2 or transposed Publication 
even though this Publication may contain the Contribution or a derivative 
work thereof.  The Contribution shall disclose any known limitations on 
the Source's rights to license as herein provided.

When a Contribution is submitted by the Source(s) to assist the 
formulating groups of 3GPP2 or any of its Organizational Partners, it 
is proposed to the Committee as a basis for discussion and is not to 
be construed as a binding proposal on the Source(s).  The Source(s) 
specifically reserve(s) the right to amend or modify the material 
contained in the Contribution. Nothing contained in the Contribution 
shall, except as herein expressly provided, be construed as conferring 
by implication, estoppel or otherwise, any license or right under (i) 
any existing or later issuing patent, whether or not the use of 
information in the document necessarily employs an invention of any 
existing or later issued patent, (ii) any copyright, (iii) any 
trademark, or (iv) any other intellectual property right.

With respect to the Software necessary for the practice of any or 
all Normative portions of the Enhanced Variable Rate Codec (EVRC) as 
it exists on the date of submittal of this form, should the EVRC be 
approved as a Specification or Report by 3GPP2, or as a transposed 
Standard by any of the 3GPP2's Organizational Partners, the Source(s) 
state(s) that a worldwide license to reproduce, use and distribute the 
Software, the license rights to which are held by the Source(s), will 
be made available to applicants under terms and conditions that are 
reasonable and non-discriminatory, which may include monetary compensation, 
and only to the extent necessary for the practice of any or all of the 
Normative portions of the EVRC or the field of use of practice of the 
EVRC Specification, Report, or Standard.  The statement contained above 
is irrevocable and shall be binding upon the Source(s).  In the event 
the rights of the Source(s) in and to copyright or copyright license 
rights subject to such commitment are assigned or transferred, the 
Source(s) shall notify the assignee or transferee of the existence of 
such commitments.
*******************************************************************/
 
/*======================================================================*/
/*     Enhanced Variable Rate Codec - Bit-Exact C Specification         */
/*     Copyright (C) 1997-1998 Telecommunications Industry Association. */
/*     All rights reserved.                                             */
/*----------------------------------------------------------------------*/
/* Note:  Reproduction and use of this software for the design and      */
/*     development of North American Wideband CDMA Digital              */
/*     Cellular Telephony Standards is authorized by the TIA.           */
/*     The TIA does not authorize the use of this software for any      */
/*     other purpose.                                                   */
/*                                                                      */
/*     The availability of this software does not provide any license   */
/*     by implication, estoppel, or otherwise under any patent rights   */
/*     of TIA member companies or others covering any use of the        */
/*     contents herein.                                                 */
/*                                                                      */
/*     Any copies of this software or derivative works must include     */
/*     this and all other proprietary notices.                          */
/*======================================================================*/
#include <stdio.h>
#include "mathevrc.h"
#include "typedefs.h"

/*****************************************************************************
 *                                                                           *
 *   Function Name : L_divide                                                *
 *                                                                           *
 *   Purpose :                                                               *
 *             Fractionnal integer division of two 32 bit numbers.           *
 *             L_num / L_denom.                                              *
 *             L_num and L_denom must be positive and L_num < L_denom.       *
 *                                                                           *
 *   Inputs :                                                                *
 *                                                                           *
 *    L_num                                                                  *
 *             32 bit long signed integer whose value falls in the           *
 *             range : 0x0000 0000 < L_num < L_denom                         *
 *                                                                           *
 *    L_denom                                                                *
 *             32 bit positive normalized integer whose value falls in the   *
 *             range : 0x40000000 < L_denom < 0x7fffffff                     *
 *                                                                           *
 *   Return Value :                                                          *
 *                                                                           *
 *    L_div                                                                  *
 *             32 bit long signed integer whose value falls in the           *
 *             range : 0x0000 0000 <= L_div <= 0x7fff ffff.                  *
 *                                                                           *
 *  Algorithm:                                                               *
 *                                                                           *
 *  - find = 1/L_denom.                                                      *
 *      First approximation: approx = 1 / extract_h(L_denom)                 *
 *      1/L_denom = approx * (2.0 - L_denom * approx )                       *
 *                                                                           *
 *  - result = L_num * (1/L_denom)                                           *
 *****************************************************************************
*/

Longword L_divide(Longword L_num, Longword L_denom)
{
	Shortword approx;
	Longword L_div;

	if (L_num < 0 || L_denom < 0 || L_num > L_denom)
	{
		printf("ERROR: Invalid input into L_divide!\n");
		return (0);
	}

	/* First approximation: 1 / L_denom = 1/extract_h(L_denom) */

	approx = divide_s((Shortword) 0x3fff, extract_h(L_denom));

	/* 1/L_denom = approx * (2.0 - L_denom * approx) */

	L_div = L_mpy_ls(L_denom, approx);

	L_div = L_sub((Longword) 0x7fffffffL, L_div);

	L_div = L_mpy_ls(L_div, approx);

	/* L_num * (1/L_denom) */

	L_div = L_mpy_ll(L_num, L_div);
	L_div = L_shl(L_div, 2);

	return (L_div);
}

/***************************************************************************
 *
 *   FUNCTION NAME: sqroot
 *
 *   PURPOSE:
 *
 *     The purpose of this function is to perform a single precision square
 *     root function on a Longword
 *
 *   INPUTS:
 *
 *     L_SqrtIn
 *                     input to square root function
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     swSqrtOut
 *                     output to square root function
 *
 *   DESCRIPTION:
 *
 *      Input assumed to be normalized
 *
 *      The algorithm is based around a six term Taylor expansion :
 *
 *        y^0.5 = (1+x)^0.5
 *             ~= 1 + (x/2) - 0.5*((x/2)^2) + 0.5*((x/2)^3)
 *                - 0.625*((x/2)^4) + 0.875*((x/2)^5)
 *
 *      Max error less than 0.08 % for normalized input ( 0.5 <= x < 1 )
 *
 *************************************************************************/

Shortword sqroot(Longword L_SqrtIn)
{

/*_________________________________________________________________________
 |                                                                         |
 |                              Local Constants                            |
 |_________________________________________________________________________|
*/

#define    PLUS_HALF          0x40000000L	/* 0.5 */
#define    MINUS_ONE          0x80000000L	/* -1 */
#define    TERM5_MULTIPLER    0x5000	/* 0.625 */
#define    TERM6_MULTIPLER    0x7000	/* 0.875 */

/*_________________________________________________________________________
 |                                                                         |
 |                            Automatic Variables                          |
 |_________________________________________________________________________|
*/

	Longword L_Temp0, L_Temp1;

	Shortword swTemp, swTemp2, swTemp3, swTemp4, swSqrtOut;

/*_________________________________________________________________________
 |                                                                         |
 |                              Executable Code                            |
 |_________________________________________________________________________|
*/

	/* determine 2nd term x/2 = (y-1)/2 */
	/* -------------------------------- */

	L_Temp1 = L_shr(L_SqrtIn, 1);	/* L_Temp1 = y/2 */
	L_Temp1 = L_sub(L_Temp1, PLUS_HALF);	/* L_Temp1 = (y-1)/2 */
	swTemp = extract_h(L_Temp1);	/* swTemp = x/2 */

	/* add contribution of 2nd term */
	/* ---------------------------- */

	L_Temp1 = L_sub(L_Temp1, MINUS_ONE);	/* L_Temp1 = 1 + x/2 */

	/* determine 3rd term */
	/* ------------------ */

	L_Temp0 = L_msu(0L, swTemp, swTemp);	/* L_Temp0 = -(x/2)^2 */
	swTemp2 = extract_h(L_Temp0);	/* swTemp2 = -(x/2)^2 */
	L_Temp0 = L_shr(L_Temp0, 1);	/* L_Temp0 = -0.5*(x/2)^2 */

	/* add contribution of 3rd term */
	/* ---------------------------- */

	L_Temp0 = L_add(L_Temp1, L_Temp0);	/* L_Temp0 = 1 + x/2 - 0.5*(x/2)^2 */

	/* determine 4rd term */
	/* ------------------ */

	L_Temp1 = L_msu(0L, swTemp, swTemp2);	/* L_Temp1 = (x/2)^3 */
	swTemp3 = extract_h(L_Temp1);	/* swTemp3 = (x/2)^3 */
	L_Temp1 = L_shr(L_Temp1, 1);	/* L_Temp1 = 0.5*(x/2)^3 */

	/* add contribution of 4rd term */
	/* ---------------------------- */

	/* L_Temp1 = 1 + x/2 - 0.5*(x/2)^2 + 0.5*(x/2)^3 */

	L_Temp1 = L_add(L_Temp0, L_Temp1);

	/* determine partial 5th term */
	/* -------------------------- */

	L_Temp0 = L_mult(swTemp, swTemp3);	/* L_Temp0 = (x/2)^4 */
	swTemp4 = round32(L_Temp0);	/* swTemp4 = (x/2)^4 */

	/* determine partial 6th term */
	/* -------------------------- */

	L_Temp0 = L_msu(0L, swTemp2, swTemp3);	/* L_Temp0 = (x/2)^5 */
	swTemp2 = round32(L_Temp0);	/* swTemp2 = (x/2)^5 */

	/* determine 5th term and add its contribution */
	/* ------------------------------------------- */

	/* L_Temp0 = -0.625*(x/2)^4 */

	L_Temp0 = L_msu(0L, TERM5_MULTIPLER, swTemp4);

	/* L_Temp1 = 1 + x/2 - 0.5*(x/2)^2 + 0.5*(x/2)^3 - 0.625*(x/2)^4 */

	L_Temp1 = L_add(L_Temp0, L_Temp1);

	/* determine 6th term and add its contribution */
	/* ------------------------------------------- */

	/* swSqrtOut = 1 + x/2 - 0.5*(x/2)^2 + 0.5*(x/2)^3 */
	/* - 0.625*(x/2)^4 + 0.875*(x/2)^5     */

	swSqrtOut = mac_r(L_Temp1, TERM6_MULTIPLER, swTemp2);

	/* return output */
	/* ------------- */

	return (swSqrtOut);
}

/***************************************************************************
 *
 *   FUNCTION NAME: fnLog2
 *
 *   PURPOSE:
 *     The purpose of this function is to take the log base 2 of input and
 *     divide by 32 and return; i.e. output = log2(input)/32
 *
 *   INPUTS:
 *
 *     L_Input
 *                     input
 *
 *   OUTPUTS:
 *
 *     none
 *
 *   RETURN VALUE:
 *
 *     Longword
 *                     output
 *
 *   DESCRIPTION:
 *
 *     log2(x) = 4.0 * (-.3372223*x*x + .9981958*x -.6626105)
 *                           c0            c1          c2   (includes sign)
 *
 *************************************************************************/

Longword fnLog2(Longword L_Input)
{

	static Shortword
	    swC0 = -0x2b2a, swC1 = 0x7fc5, swC2 = -0x54d0;

	Shortword siShiftCnt, swInSqrd, swIn;
	Longword LwIn, Ltemp, lwInSqrd;

/*_________________________________________________________________________
 |                                                                         |
 |                              Executable Code                            |
 |_________________________________________________________________________|
*/

	/* normalize input and store shifts required */
	/* ----------------------------------------- */

	siShiftCnt = norm_l(L_Input);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合 综合色| 成人美女视频在线看| 美美哒免费高清在线观看视频一区二区| 国内久久婷婷综合| 精品国产一区二区三区久久久蜜月| 中文字幕一区二区三区不卡| 久久精品国产在热久久| 欧美一区二区三级| 美脚の诱脚舐め脚责91| 精品入口麻豆88视频| 久色婷婷小香蕉久久| 日韩一区国产二区欧美三区| 欧美a级一区二区| 日韩欧美在线影院| 麻豆91精品视频| 欧美一区二区国产| 在线视频国内自拍亚洲视频| 一区二区三区视频在线看| 色综合一个色综合| 一区二区三区不卡视频在线观看| 97se亚洲国产综合自在线| 国产精品网曝门| 色综合一区二区| 亚洲一区二区影院| 在线播放/欧美激情| 免费在线欧美视频| 亚洲国产成人在线| 在线观看日韩国产| 国产精品一线二线三线| 中文一区二区完整视频在线观看| 99久久亚洲一区二区三区青草| 一区二区三区日韩精品视频| 欧美大片国产精品| 91极品美女在线| 国产成人av一区二区三区在线观看| 国产精品久久久久久久第一福利 | 亚洲无人区一区| 日韩一区二区三区视频| 国产美女在线精品| 日韩中文字幕亚洲一区二区va在线| 337p日本欧洲亚洲大胆精品| 在线亚洲欧美专区二区| 成人精品国产免费网站| 久久99精品国产| 免费一级片91| 亚洲五月六月丁香激情| 国产精品丝袜久久久久久app| 欧美精选午夜久久久乱码6080| 91丨国产丨九色丨pron| 国产伦精品一区二区三区免费| 丝袜亚洲另类丝袜在线| 一区二区三区中文字幕在线观看| 精品国产乱码久久| 国产精品色在线观看| 亚洲卡通欧美制服中文| 日本欧美在线观看| 国产在线观看一区二区| 日本欧美在线看| 日韩美女精品在线| 亚洲九九爱视频| 国产专区综合网| 一本大道综合伊人精品热热| 欧美浪妇xxxx高跟鞋交| 精品国产一区久久| 亚洲精品日日夜夜| 久久成人免费网站| 在线亚洲人成电影网站色www| 欧美精品 日韩| 亚洲视频狠狠干| 久色婷婷小香蕉久久| 欧美视频中文字幕| 欧美一级免费观看| 亚洲男帅同性gay1069| 激情文学综合丁香| 在线亚洲欧美专区二区| 日韩欧美国产成人一区二区| 午夜精品一区二区三区免费视频| 一区二区久久久久| 国产乱色国产精品免费视频| 成人app网站| 欧美精品久久99久久在免费线| 久久99精品视频| 色久优优欧美色久优优| 欧美一级在线视频| 亚洲永久精品国产| 懂色av中文一区二区三区 | 国产精品麻豆一区二区| 奇米精品一区二区三区四区| 在线看一区二区| 久久久av毛片精品| 麻豆国产欧美一区二区三区| 91久久线看在观草草青青| 中文字幕免费观看一区| 麻豆精品在线观看| 欧美一卡二卡在线| 日日摸夜夜添夜夜添亚洲女人| 99久久精品一区二区| 国产精品三级在线观看| 成人激情综合网站| 国产精品嫩草影院com| 99久久99久久久精品齐齐| 亚洲三级视频在线观看| 欧美精品色一区二区三区| 国产精品美女久久久久久久网站| 国产精品的网站| 色久综合一二码| 美洲天堂一区二卡三卡四卡视频| 一区二区三区不卡在线观看 | 欧美一区二区三区四区在线观看| 欧美激情一区在线观看| 欧美在线观看视频一区二区三区| 国内成人精品2018免费看| 日韩一级片在线观看| 国产自产视频一区二区三区| 欧美激情一区二区三区在线| 色悠久久久久综合欧美99| 91视频你懂的| 欧美色网站导航| 久久久久国产成人精品亚洲午夜| 亚洲成人资源在线| 成人h版在线观看| 欧美精品一区男女天堂| 亚洲精品国产一区二区精华液 | 在线播放中文一区| 26uuu精品一区二区三区四区在线| 国产剧情一区在线| 日韩免费电影网站| 五月综合激情网| 在线观看日韩av先锋影音电影院| 亚洲图片另类小说| 国产一区二区成人久久免费影院| 91精品中文字幕一区二区三区| 亚洲色图都市小说| 国模套图日韩精品一区二区| 99国产欧美另类久久久精品| 欧美色涩在线第一页| 91精品在线麻豆| 亚洲第一狼人社区| 99热在这里有精品免费| 精品国产麻豆免费人成网站| 26uuu精品一区二区在线观看| 日韩精品成人一区二区三区| 99久久er热在这里只有精品66| 日韩欧美123| 午夜影院在线观看欧美| 国产综合成人久久大片91| 欧美日韩精品一区二区在线播放| 国产精品情趣视频| 麻豆极品一区二区三区| 91国产成人在线| 国产精品久久久久久久久免费樱桃| 美女一区二区在线观看| 色88888久久久久久影院按摩 | 国产综合久久久久久久久久久久 | 天堂成人免费av电影一区| **性色生活片久久毛片| 亚洲一区免费视频| 午夜成人在线视频| 一本久久精品一区二区| 一区二区三区欧美亚洲| 久久免费国产精品| 欧美在线视频不卡| av色综合久久天堂av综合| 美女一区二区在线观看| 久久久亚洲高清| 国产欧美日韩亚州综合| 国产女同互慰高潮91漫画| 午夜a成v人精品| 99久久久久久| 国产精品午夜春色av| 久久国产麻豆精品| 色综合久久中文综合久久97| 欧美一区二区性放荡片| 亚洲一级二级在线| 懂色av一区二区夜夜嗨| 99麻豆久久久国产精品免费| 欧美日本一区二区三区四区| 久久精品亚洲乱码伦伦中文 | 亚洲国产成人av好男人在线观看| 不卡电影一区二区三区| 自拍偷拍亚洲激情| 在线不卡中文字幕播放| 久久99国产精品麻豆| 欧美国产成人精品| 日本伊人精品一区二区三区观看方式| 日本不卡不码高清免费观看| 久久综合久久鬼色中文字| 91麻豆免费在线观看| 亚洲1区2区3区视频| 日韩一卡二卡三卡| 日本系列欧美系列| 91成人免费网站| 亚洲综合一区二区三区| 国产一区二区电影| 精品国产乱码久久久久久浪潮| 亚洲午夜久久久久久久久久久 | 一区二区三区中文字幕精品精品| 亚洲午夜一区二区三区| 国产剧情一区在线| 久久久影院官网|