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

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

?? huffman.cpp

?? 通過源代碼詳細的介紹了VC++的用法
?? CPP
字號:
////////////////////////////////////////////////////////////////////////////
//
//
//    Project     : VideoNet version 1.1.
//    Description : Peer to Peer Video Conferencing over the LAN.
//	  Author      :	Nagareshwar Y Talekar ( nsry2002@yahoo.co.in)
//    Date        : 15-6-2004.
//
//    I have converted origional fast h.263 encoder library from C to C++ 
//	  so that it can be integrated into any windows application easily.
//	  I have removed some of unnecessary codes/files from the
//	  fast h263 library.Also moved definitions and declarations
//	  in their proper .h and .cpp files.
//
//    File description : 
//    Name    : huffman.cpp
//
//
/////////////////////////////////////////////////////////////////////////////

/*****************************************************************
 * tmn (TMN encoder) 
 * Copyright (C) 1995 Telenor R&D
 *                    Karl Olav Lillevold <kol@nta.no>                    
 *
 * These routines are written by Andy C. Hung
 *
 *****************************************************************/

/*************************************************************
Copyright (C) 1990, 1991, 1993 Andy C. Hung, all rights reserved.
PUBLIC DOMAIN LICENSE: Stanford University Portable Video Research
Group. If you use this software, you agree to the following: This
program package is purely experimental, and is licensed "as is".
Permission is granted to use, modify, and distribute this program
without charge for any purpose, provided this license/ disclaimer
notice appears in the copies.  No warranty or maintenance is given,
either expressed or implied.  In no event shall the author(s) be
liable to you or a third party for any special, incidental,
consequential, or other damages, arising out of the use or inability
to use the program for any purpose (or the loss of data), even if we
have been advised of such possibilities.  Any public reference or
advertisement of this source code should refer to it as the Portable
Video Research Group (PVRG) code, and not by any author(s) (or
Stanford University) name.
*************************************************************/
/*
************************************************************
huffman.c

This file contains the Huffman routines.  They are constructed to use
no look-ahead in the stream.

************************************************************
*/

#include <stdio.h>
#include <stdlib.h>
#include "huffman.h"
#include "ctables.h"


#define MakeStructure(S) (S *) malloc(sizeof(S))

EHUFF *vlc_3d;
EHUFF *vlc_cbpcm;
EHUFF *vlc_cbpcm_intra;
EHUFF *vlc_cbpy;
EHUFF *vlc_mv;

/**********************************************************************
 *
 *	Name:		InitHuff
 *	Description:   	Initializes vlc-tables
 *	
 *	Input:	      
 *	Returns:       
 *	Side effects:
 *
 *	Date: 941128	Author: Karl.Lillevold@ta.no
 *			        Idea: see above
 *
 ***********************************************************************/

void InitHuff()
{
  vlc_3d = MakeEhuff(8192);
  vlc_cbpcm = MakeEhuff(256);
  vlc_cbpcm_intra = MakeEhuff(256);
  vlc_cbpy = MakeEhuff(16);
  vlc_mv = MakeEhuff(65);
  LoadETable(vlc_3d_coeff,vlc_3d);
  LoadETable(vlc_cbpcm_coeff,vlc_cbpcm);
  LoadETable(vlc_cbpcm_intra_coeff,vlc_cbpcm_intra);
  LoadETable(vlc_cbpy_coeff,vlc_cbpy);
  LoadETable(vlc_mv_coeff,vlc_mv);
  return;
}

/* FreeHuff(): Frees the VLC-tables */
void FreeHuff()
{
  FreeEhuff(vlc_3d);
  FreeEhuff(vlc_cbpcm);
  FreeEhuff(vlc_cbpcm_intra);
  FreeEhuff(vlc_cbpy);
  FreeEhuff(vlc_mv);
}
    
/*
MakeEhuff() constructs an encoder huff with a designated table-size.
This table-size, n, is used for the lookup of Huffman values, and must
represent the largest positive Huffman value.

*/

EHUFF *MakeEhuff(int n)
{
    int i;
    EHUFF *temp;

    temp = MakeStructure(EHUFF);
    temp->n = n;
    temp->Hlen = (int *) calloc(n,sizeof(int));
    temp->Hcode = (int *) calloc(n,sizeof(int));
    for(i=0;i<n;i++)
	{
	    temp->Hlen[i] = -1;
	    temp->Hcode[i] = -1;
	}
    return(temp);
}

void FreeEhuff(EHUFF *eh)
{
    free(eh->Hlen);
    free(eh->Hcode);
    free(eh);
}

/*

LoadETable() is used to load an array into an encoder table.  The
array is grouped in triplets and the first negative value signals the
end of the table.

*/

void LoadETable(int *array,EHUFF *table)
{
    while(*array>=0)
	{
	    if (*array>table->n)
		{
		    printf("Table overflow.\n");
		    exit(-1);
		}
	    table->Hlen[*array] = array[1];
	    table->Hcode[*array] = array[2];
	    array+=3;
	}
}

/*

PrintEhuff() prints the encoder Huffman structure passed into it.

*/

/*$void PrintEhuff(EHUFF *huff)
{
    int i;

    printf("Modified Huffman Encoding Structure: %x\n",&huff);
    printf("Number of values %d\n",huff->n);
    for(i=0;i<huff->n;i++)
	{
	    if (huff->Hlen[i]>=0)
		{
		    printf("Value: %x  Length: %d  Code: %x\n",
			   i,huff->Hlen[i],huff->Hcode[i]);
		}
	}
}$*/

/*

PrintTable() prints out 256 elements in a nice byte ordered fashion.

*/

void PrintTable(int *table)
{
    int i,j;

    for(i=0;i<16;i++)
	{
	    for(j=0;j<16;j++)
		printf("%2x ",*(table++));
	    printf("\n");
	}
}

/*
Encode() encodes a symbol according to a designated encoder Huffman
table out to the stream. It returns the number of bits written to the
stream and a zero on error.
*/

int Encode(int val,EHUFF *huff)
{

    if (val < 0)
	{
	    fprintf(stderr,"Out of bounds val:%d.\n",val);
	    fflush(Global::tf);
	    exit(-1);
	}
    else if (val >= huff->n) {
	return 0; /* No serious error, can occur with some values */
    }
    else if (huff->Hlen[val] < 0) {
	return 0;
    }
    else {
	mputv(huff->Hlen[val],huff->Hcode[val]); 
	return(huff->Hlen[val]);
    }
}


char *BitPrint(int length, int val)
{
    int m;
    char *bit = (char *)malloc(sizeof(char)*(length+3));

    m = length;
    bit[0] = '"';
    while (m--) 
	bit[length-m] = (val & (1<<m)) ? '1' : '0';
    bit[length+1] = '"';
    bit[length+2] = '\0';
    return bit;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精一区二区三区| 欧美亚洲自拍偷拍| 91免费在线看| 欧美一级理论性理论a| 国产精品久久久久一区二区三区共 | 制服.丝袜.亚洲.中文.综合| 国产日韩精品一区二区浪潮av| 亚洲精品精品亚洲| 国产黄色精品视频| 欧美一区二区在线播放| 亚洲黄色免费电影| 成人av电影在线播放| 久久一区二区三区国产精品| 视频一区视频二区中文| 91丨porny丨在线| 国产欧美精品在线观看| 久久99久久精品| 在线不卡中文字幕播放| 亚洲三级免费观看| 99国产精品一区| 中文字幕亚洲电影| 国产v综合v亚洲欧| 欧美国产一区在线| 成人久久18免费网站麻豆| 久久中文娱乐网| 久久99国产精品成人| 6080午夜不卡| 久久精品国产免费看久久精品| 在线播放日韩导航| 日本vs亚洲vs韩国一区三区二区 | av在线不卡网| 国产精品欧美一区二区三区| 国产一区二区免费看| 精品动漫一区二区三区在线观看| 免费日韩伦理电影| 18成人在线观看| 国产精品18久久久久久vr| 精品剧情在线观看| 国产一区视频在线看| 久久久久国产免费免费| 国产精品一区二区在线播放 | 成人激情图片网| 日本一区二区三区在线观看| 国产精品1区2区| 国产精品无人区| 色哟哟国产精品| 丝袜国产日韩另类美女| 欧美一区二区精美| 国产成人av在线影院| 中文字幕高清不卡| 欧美性色aⅴ视频一区日韩精品| 亚洲成国产人片在线观看| 3751色影院一区二区三区| 精品一区二区三区在线播放| 久久精品亚洲乱码伦伦中文| eeuss国产一区二区三区| 亚洲精品免费播放| 91精品国产aⅴ一区二区| 狠狠色丁香婷婷综合久久片| 中文字幕av一区二区三区| 91麻豆福利精品推荐| 日韩电影免费一区| 国产精品日韩精品欧美在线| 91国偷自产一区二区开放时间| 青青草原综合久久大伊人精品优势| 久久久天堂av| 日本伦理一区二区| 国产一区二区三区蝌蚪| 亚洲精品老司机| 精品国产乱码久久久久久浪潮| 不卡视频在线观看| 日本亚洲三级在线| 中文字幕中文乱码欧美一区二区| 欧美日韩电影一区| 国产成人亚洲精品青草天美| 午夜不卡av免费| 国产精品国产精品国产专区不片 | 蜜桃免费网站一区二区三区| 国产精品久久久久影院亚瑟| 91精品国产欧美一区二区成人 | 国产精品色哟哟网站| 欧美一区二区视频在线观看2022| 成人av一区二区三区| 蜜桃视频免费观看一区| 一区二区三区毛片| 国产精品久久久久久久久免费樱桃 | 亚洲va天堂va国产va久| 国产日韩欧美一区二区三区乱码 | www.亚洲在线| 免费在线视频一区| 亚洲一线二线三线视频| 国产欧美精品一区| 日韩免费看网站| 欧美日韩国产另类一区| 99re热这里只有精品免费视频| 精东粉嫩av免费一区二区三区| 尤物视频一区二区| 中文字幕亚洲不卡| 国产精品理论片| 久久久亚洲高清| 91精品国产综合久久久久久久久久| 色婷婷综合中文久久一本| 国产成人免费视频网站| 国产露脸91国语对白| 久久99久国产精品黄毛片色诱| 亚洲自拍另类综合| 亚洲韩国一区二区三区| 亚洲综合无码一区二区| 亚洲免费三区一区二区| 国产精品电影一区二区三区| 久久精品夜色噜噜亚洲a∨| 欧美sm极限捆绑bd| 精品久久久三级丝袜| xf在线a精品一区二区视频网站| 欧美浪妇xxxx高跟鞋交| 51精品国自产在线| 91精品欧美久久久久久动漫 | 午夜电影网亚洲视频| 亚洲精品乱码久久久久久 | 捆绑调教美女网站视频一区| 日韩中文字幕一区二区三区| 日韩中文字幕区一区有砖一区| 天使萌一区二区三区免费观看| 图片区小说区区亚洲影院| 天堂精品中文字幕在线| 三级亚洲高清视频| 激情五月婷婷综合网| 国产成人综合自拍| www.日韩在线| 色综合色综合色综合| 欧美午夜精品免费| 91精品国产一区二区| 久久久777精品电影网影网| 国产精品看片你懂得| 亚洲综合免费观看高清完整版| 亚洲一级不卡视频| 蜜臀av在线播放一区二区三区| 久久综合综合久久综合| 国产成a人亚洲| 色8久久精品久久久久久蜜| 欧美日韩精品欧美日韩精品| 日韩一区二区免费在线电影| 久久久亚洲午夜电影| 亚洲精品国产第一综合99久久| 午夜精品在线视频一区| 极品少妇一区二区| 99视频一区二区| 91精品国产乱码| 欧美激情一区二区三区四区| 亚洲蜜桃精久久久久久久| 日韩av电影免费观看高清完整版| 国产精品小仙女| 欧美性感一区二区三区| 久久精品一二三| 五月婷婷欧美视频| 粉嫩绯色av一区二区在线观看 | 91在线观看地址| 欧美日韩夫妻久久| 国产精品乱码一区二区三区软件| 午夜精品久久久久影视| 大陆成人av片| 欧美成人欧美edvon| 一区二区三区在线看| 久久99国产精品久久| 欧亚一区二区三区| 中文字幕第一区二区| 美女视频第一区二区三区免费观看网站| 99这里都是精品| 精品国产一区二区三区四区四| 亚洲欧美日韩在线不卡| 国产成人综合自拍| 日韩欧美一区二区久久婷婷| 亚洲日穴在线视频| 国产乱人伦偷精品视频不卡| 亚洲男人电影天堂| 国产福利一区在线| 亚洲精品一区二区三区精华液 | 国模套图日韩精品一区二区| 欧美精品九九99久久| 一区二区三区自拍| 99久久精品国产观看| 国产三级欧美三级| 国产一区二区在线视频| 日韩欧美国产三级| 日韩精品久久久久久| 欧美写真视频网站| 亚洲激情图片小说视频| 成人av资源在线观看| 国产精品人妖ts系列视频 | 日韩二区三区四区| 欧美日韩一本到| 亚洲一区二区免费视频| 色综合久久88色综合天天6| 国产精品的网站| 成人免费看的视频| 国产精品精品国产色婷婷| 成人国产一区二区三区精品| 国产日本亚洲高清| 成人亚洲一区二区一| 中文字幕综合网|