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

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

?? nok_lt_prediction.c

?? jpeg and mpeg 編解碼技術源代碼
?? C
字號:
/**************************************************************************

This software module was originally developed by
Nokia in the course of development of the MPEG-2 AAC/MPEG-4
Audio standard ISO/IEC13818-7, 14496-1, 2 and 3.
This software module is an implementation of a part
of one or more MPEG-2 AAC/MPEG-4 Audio tools as specified by the
MPEG-2 aac/MPEG-4 Audio standard. ISO/IEC  gives users of the
MPEG-2aac/MPEG-4 Audio standards free license to this software module
or modifications thereof for use in hardware or software products
claiming conformance to the MPEG-2 aac/MPEG-4 Audio  standards. Those
intending to use this software module in hardware or software products
are advised that this use may infringe existing patents. The original
developer of this software module, the subsequent
editors and their companies, and ISO/IEC have no liability for use of
this software module or modifications thereof in an
implementation. Copyright is not released for non MPEG-2 aac/MPEG-4
Audio conforming products. The original developer retains full right to
use the code for the developer's own purpose, assign or donate the code to a
third party and to inhibit third party from using the code for non
MPEG-2 aac/MPEG-4 Audio conforming products. This copyright notice
must be included in all copies or derivative works.
Copyright (c)1997.

***************************************************************************/
/*
 * $Id: nok_lt_prediction.c,v 1.8 2002/01/09 22:25:41 wmay Exp $
 */

#ifdef WIN32
#define WIN32_MEAN_AND_LEAN
#include <windows.h>
#endif
#include <stdio.h>

#include "all.h"
#include "tns.h"
#include "block.h"
#include "nok_ltp_common.h"
#include "nok_lt_prediction.h"
#include "nok_ltp_common_internal.h"
#include "port.h"
#include "bits.h"
#include "util.h"

/*
  Initialize the history buffer for long term prediction
 */

void nok_init_lt_pred(NOK_LT_PRED_STATUS **lt_status, int channels)
{
    int ch;

    for (ch = 0; ch < channels; ch++) {
        lt_status[ch]->buffer = AllocMemory(NOK_LT_BLEN*sizeof(float));
#ifndef WIN32
        SetMemory(lt_status[ch]->buffer, 0, NOK_LT_BLEN*sizeof(float));
#endif
    }
}

void nok_end_lt_pred(NOK_LT_PRED_STATUS **lt_status, int channels)
{
    int ch;

    for (ch = 0; ch < channels; ch++) {
        if (lt_status[ch]->buffer) FreeMemory(lt_status[ch]->buffer);
    }
}


/**************************************************************************
  nok_lt_prediction
 *************************************************************************/

void nok_lt_predict(faacDecHandle hDecoder, Info *info, WINDOW_TYPE win_type, Wnd_Shape *win_shape,
                    int *sbk_prediction_used, int *sfb_prediction_used,
                    NOK_LT_PRED_STATUS *lt_status, Float weight, int *delay,
                    Float *current_frame, int block_size_long, int block_size_medium,
                    int block_size_short, TNS_frame_info *tns_frame_info)
{
    int i, j, num_samples;
    float_ext *mdct_predicted;
    float_ext *predicted_samples;

    mdct_predicted = AllocMemory(2*NOK_MAX_BLOCK_LEN_LONG*sizeof(float_ext));
    predicted_samples = AllocMemory(2*NOK_MAX_BLOCK_LEN_LONG*sizeof(float_ext));


    switch(win_type) {

    case ONLY_LONG_WINDOW:
    case LONG_START_WINDOW:
    case LONG_STOP_WINDOW:
        if (sbk_prediction_used[0])
        {
            /* Prediction for time domain signal */
            num_samples =  2 * block_size_long;
            j = NOK_LT_BLEN - 2 * block_size_long - (delay[0] - MAX_LTP_DELAY / 2);
            if(NOK_LT_BLEN - j <  2 * block_size_long)
                num_samples = NOK_LT_BLEN - j;

            for(i = 0; i < num_samples; i++)
                predicted_samples[i] = weight * lt_status->buffer[i + j];
            for( ; i < 2 * block_size_long; i++)
                predicted_samples[i] = 0.0f;

            /* Transform prediction to frequency domain. */
            time2freq_adapt(hDecoder, win_type, win_shape, predicted_samples, mdct_predicted);

            /* Apply the TNS analysis filter to the predicted spectrum. */
            if(tns_frame_info != NULL)
                tns_filter_subblock(hDecoder, mdct_predicted, info->sfb_per_bk, info->sbk_sfb_top[0],
                1, &tns_frame_info->info[0]);

            /* Clean those sfb's where prediction is not used. */
            for (i = 0, j = 0; i < info->sfb_per_bk; i++) {
                if (sfb_prediction_used[i + 1] == 0) {
                    for (; j < info->sbk_sfb_top[0][i]; j++)
                        mdct_predicted[j] = 0.0;
                } else {
                    j = info->sbk_sfb_top[0][i];
                }
            }

            /* Add the prediction to dequantized spectrum. */
            for (i = 0; i < block_size_long; i++)
                current_frame[i] = current_frame[i] + mdct_predicted[i];
        }
        break;

    default:
        break;
    }

    FreeMemory(mdct_predicted);
    FreeMemory(predicted_samples);
}

/**************************************************************************
  nok_lt_update
 *************************************************************************/

void nok_lt_update(NOK_LT_PRED_STATUS *lt_status, Float *time_signal,
                   Float *overlap_signal, int block_size_long)
{
    int i;

    for(i = 0; i < NOK_LT_BLEN - 2 * block_size_long; i++)
        lt_status->buffer[i] = lt_status->buffer[i + block_size_long];

    for(i = 0; i < block_size_long; i++)
    {
        lt_status->buffer[NOK_LT_BLEN - 2 * block_size_long + i] =
            time_signal[i];

        lt_status->buffer[NOK_LT_BLEN - block_size_long + i] =
            overlap_signal[i];
    }
}

/**************************************************************************
  nok_lt_decode
 *************************************************************************/
void nok_lt_decode(faacDecHandle hDecoder, int max_sfb, int *sbk_prediction_used,
                   int *sfb_prediction_used, Float *weight, int *delay)
{
    int i, last_band;

    if ((sbk_prediction_used[0] = faad_getbits(&hDecoder->ld, LEN_LTP_DATA_PRESENT)))
    {
        delay[0] = faad_getbits(&hDecoder->ld, 11);
        *weight = codebook[faad_getbits(&hDecoder->ld, 3)];

        last_band = (max_sfb < NOK_MAX_LT_PRED_LONG_SFB
            ? max_sfb : NOK_MAX_LT_PRED_LONG_SFB) + 1;

        sfb_prediction_used[0] = sbk_prediction_used[0];
        for (i = 1; i < last_band; i++)
            sfb_prediction_used[i] = faad_getbits(&hDecoder->ld, LEN_LTP_LONG_USED);
        for (; i < max_sfb + 1; i++)
            sfb_prediction_used[i] = 0;
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美电影一区二区| 亚洲色图欧美在线| 亚洲视频免费在线观看| 免费人成网站在线观看欧美高清| 99国产欧美另类久久久精品| 欧美一区二区三区四区高清| 最新国产精品久久精品| 蜜桃av噜噜一区二区三区小说| 91性感美女视频| 国产亚洲欧美日韩日本| 三级欧美韩日大片在线看| 成人av网址在线观看| www国产成人免费观看视频 深夜成人网 | 91免费国产视频网站| 精品国产99国产精品| 日韩精品视频网| 欧美综合视频在线观看| 国产精品美女视频| 成人天堂资源www在线| 精品福利二区三区| 日韩av高清在线观看| 欧美日韩中字一区| 香蕉久久夜色精品国产使用方法 | 在线电影国产精品| 一区二区三区日韩欧美| 色婷婷综合久久久久中文一区二区 | 日本成人在线看| 欧美巨大另类极品videosbest| 一区二区三区四区视频精品免费 | 精品乱人伦一区二区三区| 亚瑟在线精品视频| 欧美久久高跟鞋激| 亚洲国产日韩av| 欧美亚洲高清一区二区三区不卡| 亚洲激情欧美激情| 91网站在线播放| 亚洲影视在线观看| 在线播放中文字幕一区| 欧美bbbbb| 精品国产乱码久久久久久牛牛| 国产在线视频一区二区| 久久久久久久久久久电影| 国产麻豆成人传媒免费观看| 中文字幕欧美区| 不卡欧美aaaaa| 亚洲国产成人av网| 欧美本精品男人aⅴ天堂| 国产麻豆精品theporn| 中文字幕在线不卡一区 | 亚洲欧美日韩久久精品| 91麻豆文化传媒在线观看| 一级日本不卡的影视| 在线成人av影院| 国产精品911| 自拍偷拍国产亚洲| 欧美一级黄色片| 不卡的av在线| 亚洲二区视频在线| 久久久777精品电影网影网 | 欧美一区二区在线看| 免费看欧美女人艹b| 国产日产欧美一区| 色综合久久综合| 欧美aⅴ一区二区三区视频| 国产亚洲成av人在线观看导航| 91丨porny丨最新| 美女网站色91| 国产精品美女www爽爽爽| 欧美猛男超大videosgay| 国产精品自拍av| 亚洲一区二区中文在线| 精品日韩一区二区| 91麻豆免费看| 韩日欧美一区二区三区| 亚洲精品久久久久久国产精华液| 日韩一区二区视频在线观看| 99久久99久久精品国产片果冻| 秋霞电影一区二区| 中文字幕综合网| 欧美精品一区二区三区高清aⅴ | 91国偷自产一区二区三区观看 | 麻豆久久久久久| 综合自拍亚洲综合图不卡区| 欧美成人性战久久| 欧美三级资源在线| 波多野结衣在线一区| 奇米色一区二区三区四区| 亚洲欧美另类综合偷拍| 久久精品亚洲乱码伦伦中文 | 久久精品久久综合| 亚洲国产一区视频| 国产精品免费aⅴ片在线观看| 欧美一二三区在线| 欧美色综合网站| 日本国产一区二区| 国产不卡视频在线观看| 久国产精品韩国三级视频| 午夜精品久久一牛影视| 亚洲欧洲国产日本综合| 国产欧美一二三区| 欧美精品一区二区三区在线| 在线播放/欧美激情| 欧美色精品天天在线观看视频| 97国产一区二区| 福利视频网站一区二区三区| 国产一区二区三区免费在线观看 | 色综合久久综合中文综合网| 亚洲欧美日韩在线不卡| 国产精品全国免费观看高清| 欧美精品一区二区三区久久久| 欧美一区二区三区思思人| 欧美日韩一区二区欧美激情| 色噜噜狠狠成人中文综合| jiyouzz国产精品久久| 高清不卡一区二区| 国产成人av电影| 国产91综合网| 丰满亚洲少妇av| 91在线观看下载| 91亚洲午夜精品久久久久久| 91在线高清观看| 在线视频综合导航| 色吧成人激情小说| 欧美视频一区在线| 91麻豆精品国产91久久久久久 | 亚洲成人av一区| 亚洲va欧美va人人爽午夜 | 亚洲婷婷综合久久一本伊一区| 一区在线观看免费| 亚洲欧洲另类国产综合| 亚洲精选视频免费看| 亚洲一级二级在线| 日韩精品电影在线| 国产一区二区免费看| 成人的网站免费观看| 91高清在线观看| 日韩欧美国产一区二区三区 | 日韩欧美一区在线| 久久综合色一综合色88| 亚洲国产精品二十页| 一区二区三区中文在线| 青青草一区二区三区| 国产成+人+日韩+欧美+亚洲| 色综合久久88色综合天天免费| 欧美一区二区久久| 国产精品拍天天在线| 性欧美大战久久久久久久久| 久久91精品国产91久久小草| 波多野结衣91| 555www色欧美视频| 国产欧美精品国产国产专区| 亚洲一级二级三级| 国产自产2019最新不卡| 91欧美激情一区二区三区成人| 欧美日本一区二区三区四区 | 一级做a爱片久久| 狠狠色丁香久久婷婷综合丁香| 99视频超级精品| 日韩一级免费一区| 一区二区三区日韩欧美精品| 国产一区高清在线| 在线观看视频一区| 久久久99精品免费观看| 亚洲一级片在线观看| 成人app在线| 欧美www视频| 亚洲最新视频在线观看| 国产福利精品导航| 日韩三级中文字幕| 亚洲一区二区三区四区五区中文| 国产精品一二三区| 91精品综合久久久久久| 一二三区精品福利视频| 粉嫩aⅴ一区二区三区四区| 日韩一区二区在线看| 五月婷婷激情综合网| 99r精品视频| 国产三级欧美三级日产三级99| 日韩av中文字幕一区二区三区| 色噜噜狠狠一区二区三区果冻| 国产精品免费视频网站| 久久99国产精品尤物| 91精品一区二区三区久久久久久 | 国产精一品亚洲二区在线视频| 337p亚洲精品色噜噜噜| 亚洲一区在线免费观看| 不卡的av网站| 日本一区免费视频| 国产麻豆一精品一av一免费| 欧美成人精精品一区二区频| 午夜久久福利影院| 欧美久久免费观看| 婷婷综合在线观看| 欧美日韩激情一区二区| 性感美女久久精品| 欧美另类一区二区三区| 日韩一区精品视频| 7777精品伊人久久久大香线蕉完整版 | 欧美午夜电影网| 亚洲午夜日本在线观看|