?? g711enc.c
字號:
#include <stdio.h>#define BIAS 132 /* バイアスの猛 */#define CLIP 32635 /* 懼嘎、布嘎の冷灤猛 ( 0x7fff - BIAS ) */void disp_c(unsigned char value);void disp_s(short value);unsigned char g711encode(short audio_sample);int main(int argv, char **argc){ int i; unsigned char mu_val; /* テスト脫サンプル猛 */ short a_smp[8] ={ /* 恃垂漣 掐蝸+バイアス | XOR漣 | エンコ〖ド猛 */ 0, /* 0 00000001 0000 100 | 00000000 | 11111111 */ 140, /* 0 0000001 0001 0000 | 00010001 | 11101110 */ 444, /* 0 000001 0010 00000 | 00100010 | 11011101 */ 1084, /* 0 00001 0011 000000 | 00110011 | 11001100 */ -2460, /* 0 0001 0100 0100000 | 01000100 | 00111011 */ -5372, /* 0 001 0101 10000000 | 01010101 | 00101010 */ -11420, /* 0 01 0110 100100000 | 01100110 | 00011001 */ -24060 /* 0 1 0111 1010000000 | 01110111 | 00001000 */ }; for (i = 0; i < 8; i++ ){ mu_val = g711encode( a_smp[i] ); disp_c( mu_val ); printf("\n"); } return 0;}/* エンコ〖ド簇眶 */unsigned char g711encode(short audio_sample){ int i; int mask; int range; unsigned char mulaw_val; if( audio_sample > 0 && audio_sample > CLIP ) audio_sample = CLIP; if( audio_sample < 0 && audio_sample < -CLIP ) audio_sample = -CLIP; if( audio_sample < 0 ){ mask = 0x7f; audio_sample = -audio_sample; }else{ mask = 0xff; } audio_sample += BIAS; for( i = 7, range = 0x4000; range >= 0x80; range >>= 1, i-- ){ if( range & audio_sample ) break; } mulaw_val = (i << 4) + (( audio_sample >> ( i + 3 )) & 0x0f); disp_c(mulaw_val); return mulaw_val ^ mask;}/* shortの2渴眶山績簇眶 */void disp_s(short value){ int i; printf("\t"); for( i = 0x8000; i > 0; i >>= 1 ){ if(value & i ){ printf("1"); }else{ printf("0"); } }}/* unsigned char の2渴眶山績簇眶 */void disp_c(unsigned char value){ int i; printf("\t"); for( i = 0x80; i > 0; i >>= 1 ){ if(value & i ){ printf("1"); }else{ printf("0"); } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -