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

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

?? biaridecod.c

?? Mobile IP VCEG的信道模擬程序
?? C
字號:
/***************************************************************************
 *
 * Module      :  biaridecod.c
 *
 * Authors:    :  Detlev Marpe 
 *				  Gabi Bl鋞termann
 *
 * Date        :  21. Oct 2000
 *
 * Description :  binary arithmetic
 *                decoder routines 
 *                
 *      Copyright (C) 2000 HEINRICH HERTZ INSTITUTE All Rights Reserved.
 *
 **************************************************************************
 */

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "global.h"
#include "biaridecod.h"

extern int symbolCount;
/************************************************************************
 * M a c r o s
 ***********************************************************************
 */

#define get_byte(){                                                     \
						Dbuffer = Dcodestrm[(*Dcodestrm_len)++];        \
                        Dbits_to_go = 7;                                \
				  }


/************************************************************************/
/************************************************************************/
                    /* init / exit decoder */
/************************************************************************/
/************************************************************************/


/************************************************************************
 * arideco_create_decoding_environment():
 *
 * return: DecodingContextPtr
 ***********************************************************************
 */

DecodingEnvironmentPtr arideco_create_decoding_environment()
{
    DecodingEnvironmentPtr dep;

    if ((dep = calloc(1,sizeof(DecodingEnvironment))) == NULL)
        no_mem_exit(1);
    return dep;
}


/************************************************************************
 * arideco_delete_decoding_environment():
 *
 * return: void
 ***********************************************************************
 */

void arideco_delete_decoding_environment(DecodingEnvironmentPtr dep)
{
    if (dep == NULL)
        no_mem_exit(1);
    else
        free(dep);
}


/************************************************************************
 * arideco_start_decoding():
 *
 * return: void
 ***********************************************************************
 */
void arideco_start_decoding(DecodingEnvironmentPtr dep, unsigned char *cpixcode,
                            int firstbyte, int *cpixcode_len )
{
    int i;
    int bits;

    bits = CODE_VALUE_BITS;

    Dcodestrm = cpixcode;
    Dcodestrm_len = cpixcode_len;
    *Dcodestrm_len = firstbyte;

    Dbits_to_go = 0;
    dep->Dvalue = 0;

    for (i = 0; i < bits; i++) 
    {
        if (--Dbits_to_go < 0) 
	        get_byte();
        dep->Dvalue += dep->Dvalue  + (Dbuffer & 1);
        Dbuffer >>= 1;           
    }
    dep->Dlow = 0;
    dep->Dhigh = TOP_VALUE;
}  


/************************************************************************
 * arideco_bits_read():
 *
 * return: void
 ***********************************************************************
 */

int arideco_bits_read(DecodingEnvironmentPtr dep)
{
    return 8 * ((*Dcodestrm_len)-1) + (8 - Dbits_to_go) - CODE_VALUE_BITS;
}


/************************************************************************
 * arideco_done_decoding():
 *
 * return: void
 ***********************************************************************
 */
void arideco_done_decoding(DecodingEnvironmentPtr dep)
{
    (*Dcodestrm_len)++;
}   



/************************************************************************
 * biari_decode_symbol():
 *
 *
 * return: the decoded symbol
 ***********************************************************************
 */
unsigned int biari_decode_symbol(DecodingEnvironmentPtr dep, BiContextTypePtr bi_ct )
{
    unsigned int scaled_range;
    unsigned int symbol=0;
	int Dlow_m1 = dep->Dlow - 1;

#if  AAC_FRAC_TABLE
    if ( (scaled_range =  ( ( (dep->Dhigh - Dlow_m1) * ((bi_ct->cum_freq[1]*ARITH_CUM_FREQ_TABLE[bi_ct->cum_freq[0]])>>16))>>10) ) >=  (dep->Dvalue - Dlow_m1) )
#else
 	if ( (scaled_range =  ( ( (dep->Dhigh - Dlow_m1) * bi_ct->cum_freq[1]) / bi_ct->cum_freq[0] )) >=  (dep->Dvalue - Dlow_m1) )
#endif			
	{
        symbol++;
		dep->Dhigh = Dlow_m1 + scaled_range;
		bi_ct->cum_freq[1]++;
	}
	else
		dep->Dlow += scaled_range;

	if (++bi_ct->cum_freq[0] >= bi_ct->max_cum_freq) 
		rescale_cum_freq(bi_ct);

    do
	{
        if (dep->Dhigh >= HALF) 
		{
            if (dep->Dlow < HALF)
                if (dep->Dlow >= FIRST_QTR && dep->Dhigh < THIRD_QTR) 
				{
                    dep->Dhigh -= FIRST_QTR;   
					dep->Dvalue -= FIRST_QTR;                          
					dep->Dlow -= FIRST_QTR;
                } 
			    else
                    break;
            else 
			{
                dep->Dhigh -= HALF;
				dep->Dvalue -= HALF;
                dep->Dlow -= HALF;                  
            }
        }
        dep->Dlow <<= 1;
		dep->Dhigh += dep->Dhigh+1;

        if (--Dbits_to_go < 0) 
	        get_byte();

        dep->Dvalue += dep->Dvalue  + (Dbuffer & 1);
        Dbuffer >>= 1;           
    }
    while (1);

//    fprintf(p_trace,"@%d  %4.x  %4.x\n",symbolCount,Dlow,Dhigh);
       
    return symbol;
}   



/************************************************************************
*
*  Name :		biari_init_context()
*
*  Description: Initializes a given context with some pre-defined probabilities 
*				and a maximum symbol count for triggering the rescaling 
*
************************************************************************/
void biari_init_context( BiContextTypePtr ctx, int ini_count_0, int ini_count_1, int max_cum_freq )
{
	  
	ctx->in_use       = TRUE;
	ctx->max_cum_freq = max_cum_freq;
		
		
	ctx->cum_freq[1]  = ini_count_1;
	ctx->cum_freq[0]  = ini_count_0 + ini_count_1;
	
}  


/************************************************************************
 * biari_copy_context():
 *
 *
 * return:
 *      void
 ***********************************************************************
 */
void biari_copy_context( BiContextTypePtr ctx_orig, BiContextTypePtr ctx_dest )
{

    ctx_dest->in_use     =  ctx_orig->in_use;
	ctx_dest->max_cum_freq = ctx_orig->max_cum_freq;

    ctx_dest->cum_freq[1] = ctx_orig->cum_freq[1];
    ctx_dest->cum_freq[0] = ctx_orig->cum_freq[0];

    return;

}   

/************************************************************************
 * biari_print_context():
 *
 * return:
 *      void
 ***********************************************************************
 */
void biari_print_context( BiContextTypePtr ctx )
{

    printf("0: %4d\t",ctx->cum_freq[0] - ctx->cum_freq[1]);
    printf("1: %4d",ctx->cum_freq[1]);
	
	return;

}  
 

 /************************************************************************
*
*  Name :		rescale_cum_freq()
*
*  Description: Rescales a given context model by halvening the symbol counts
*
************************************************************************/
void rescale_cum_freq( BiContextTypePtr   bi_ct)
{

	int old_cum_freq_of_one = bi_ct->cum_freq[1];

    bi_ct->cum_freq[1] = (bi_ct->cum_freq[1] + 1) >> 1;
    bi_ct->cum_freq[0] = bi_ct->cum_freq[1] + 
						( ( bi_ct->cum_freq[0] - old_cum_freq_of_one + 1 ) >> 1);
}
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨九色丨蝌蚪富婆spa| 婷婷亚洲久悠悠色悠在线播放| 欧美丰满少妇xxxxx高潮对白| 丰满少妇久久久久久久| 国产成人高清视频| 国产电影一区在线| 国产sm精品调教视频网站| 国产mv日韩mv欧美| 99久久精品99国产精品| 99国产精品久久久久久久久久| 91亚洲精品乱码久久久久久蜜桃 | 日韩高清不卡在线| 亚洲妇熟xx妇色黄| 日本不卡123| 国产一区二区影院| 91老师片黄在线观看| 91国产免费看| 欧美一激情一区二区三区| 91精品国产一区二区人妖| 日韩欧美你懂的| 国产欧美一二三区| 亚洲国产一区视频| 精品一区二区三区的国产在线播放| 韩国欧美国产1区| av影院午夜一区| 在线综合视频播放| 国产精品区一区二区三区| 一区二区三区免费| 另类小说色综合网站| 成人sese在线| 日韩欧美亚洲一区二区| 中文文精品字幕一区二区| 一区二区三区精品久久久| 日本一区中文字幕| 99热这里都是精品| 日韩视频在线一区二区| 国产精品欧美极品| 日韩vs国产vs欧美| www.欧美亚洲| 精品国产乱码久久久久久图片| 中文字幕日韩av资源站| 日韩专区一卡二卡| 99久久久无码国产精品| 日韩视频在线你懂得| 亚洲视频狠狠干| 国产露脸91国语对白| 色88888久久久久久影院按摩| 欧美xfplay| 天天色综合天天| 99久久精品国产网站| 日韩女优毛片在线| 亚洲成人一区二区| 一本色道久久综合亚洲91 | 激情五月婷婷综合| 在线看日本不卡| 中文字幕亚洲区| 国产一区二区三区精品欧美日韩一区二区三区| 91官网在线免费观看| 中文在线资源观看网站视频免费不卡 | 免费成人在线影院| 欧美做爰猛烈大尺度电影无法无天| 精品对白一区国产伦| 婷婷一区二区三区| 欧美三级日韩三级| 玉米视频成人免费看| 成人18精品视频| 国产人成亚洲第一网站在线播放 | 91丨porny丨首页| 国产亚洲欧美激情| 国产成人午夜视频| 国产拍欧美日韩视频二区| 久99久精品视频免费观看| 日韩一区二区视频| 理论片日本一区| 欧美一区二区播放| 老司机午夜精品| 日韩免费高清电影| 久久国产人妖系列| 欧美v国产在线一区二区三区| 久久成人av少妇免费| 欧美大白屁股肥臀xxxxxx| 美女视频免费一区| 久久综合网色—综合色88| 激情综合网天天干| 国产日韩欧美激情| 99久久精品免费精品国产| 亚洲日本乱码在线观看| 在线观看欧美日本| 蜜桃91丨九色丨蝌蚪91桃色| 日韩精品一区二区三区三区免费| 毛片av一区二区| 久久综合久久久久88| 成人一区在线观看| 亚洲国产一二三| 日韩欧美不卡在线观看视频| 久久9热精品视频| 中文字幕欧美激情一区| 91丨porny丨国产入口| 亚洲图片欧美色图| 日韩你懂的在线播放| 黄页网站大全一区二区| 国产精品成人在线观看| 欧美三电影在线| 激情综合色综合久久综合| 亚洲欧美怡红院| 91精品欧美一区二区三区综合在 | 欧美色涩在线第一页| 久久精品久久99精品久久| 国产精品污网站| 欧美亚洲综合色| 麻豆久久久久久| 亚洲一区二区三区自拍| 精品福利在线导航| 91久久精品一区二区二区| 狠狠色丁香久久婷婷综合_中| 亚洲欧美日韩中文播放| 精品国产污污免费网站入口| 97久久超碰国产精品| 九九在线精品视频| 亚洲一级电影视频| 国产精品卡一卡二| 欧美精品一区二区久久婷婷| 色综合天天天天做夜夜夜夜做| 久久精品国产99久久6| 亚洲欧洲成人精品av97| 欧美大片一区二区| 欧美亚洲综合在线| 成人免费视频一区二区| 蓝色福利精品导航| 日韩电影在线观看一区| 亚洲免费在线播放| 中文在线免费一区三区高中清不卡| 91精品国产美女浴室洗澡无遮挡| 91在线国产福利| 丁香亚洲综合激情啪啪综合| 秋霞午夜鲁丝一区二区老狼| 夜夜精品浪潮av一区二区三区| 国产日产欧美一区二区视频| 日韩免费一区二区| 欧美一二三区在线| 欧美精品一卡二卡| 欧美高清一级片在线| 91国偷自产一区二区三区成为亚洲经典 | 极品少妇xxxx偷拍精品少妇| 亚洲自拍偷拍网站| 亚洲欧美日韩国产综合在线| 国产午夜精品在线观看| 久久人人爽爽爽人久久久| 精品日韩一区二区三区| 91国内精品野花午夜精品 | 日韩欧美黄色影院| 51精品视频一区二区三区| 欧美性大战久久久久久久| 91在线免费播放| 日本乱码高清不卡字幕| 在线看国产一区| 欧美精品在线观看一区二区| 欧美精品在线观看播放| 欧美一区二区日韩| 久久中文娱乐网| 亚洲国产成人午夜在线一区| 中文字幕国产一区二区| 中文字幕一区日韩精品欧美| 中文字幕综合网| 亚洲韩国一区二区三区| 免费观看日韩电影| 国产精品一区二区久久不卡| 成人短视频下载| 精品视频免费看| 欧美一卡二卡三卡四卡| 久久综合五月天婷婷伊人| 国产精品不卡一区| 亚洲国产日产av| 精品在线观看免费| 99免费精品视频| 在线亚洲人成电影网站色www| 欧美人妇做爰xxxⅹ性高电影| 日韩欧美视频一区| 1024亚洲合集| 日本午夜一区二区| 粉嫩av一区二区三区在线播放| 日本韩国欧美一区二区三区| 777午夜精品视频在线播放| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 不卡一区二区三区四区| 99久精品国产| 日韩欧美国产综合在线一区二区三区| 久久久亚洲高清| 一区二区三区欧美日韩| 国产在线精品一区二区不卡了| 国产91高潮流白浆在线麻豆 | 久久久三级国产网站| 一区二区欧美国产| 麻豆极品一区二区三区| 国产美女一区二区| 欧美亚洲综合久久| 亚洲国产精品99久久久久久久久| 日韩精品久久理论片| 成人99免费视频| 精品国精品国产|