⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reconstruct.asm

📁 利用G.723协议在DSP实现音频信号的压缩与解压缩实验
💻 ASM
字号:
;---------------------------------------------------------------------        
;}
;/*
; * reconstruct()
; *
; * Returns reconstructed difference signal 'dq' obtained from
; * codeword 'i' and quantization step size scale factor 'y'.
; * Multiplication is performed in log base 2 domain as addition.
; */
;int
;reconstruct(
;	int		sign,	/* 0 for non-negative value */
;	int		dqln,	/* G.72x codeword */
;	int		y)	/* Step size multiplier */
;{
;	short		dql;	/* Log of 'dq' magnitude */
;	short		dex;	/* Integer part of log */
;	short		dqt;
;	short		dq;	/* Reconstructed difference signal sample */
;
;	dql = dqln + (y >> 2);	/* ADDA */
;
;	if (dql < 0) {
;		return ((sign) ? -0x8000 : 0);
;	} else {		/* ANTILOG */
;		dex = (dql >> 7) & 15;
;		dqt = 128 + (dql & 127);
;		dq = shr((dqt << 7) , (14 - dex));
;		return ((sign) ? (dq - 0x8000) : dq);
;	}
;}
;-------------------------------------------------------------------
           ;AR6=sign,  B->dqln, A->y
             .title   "reconstruct.asm"
             .include "g723_global.asm"
             
             .include "g723_stat.asm"
             .mmregs
             .text
reconstruct:          
          sfta   A, -2    
          add    *AR3, A   ;A=dql
          bc     sign1, ALT
          ld     A, B
          sfta   A, -7
          and    #15, A    ;A=dex
          and    #127, B
          add    #128, B   ;B=dqt
          sfta   B, 7 
          sub    #14, A
          stlm   A, T
          ldm    AR6, A   ;A=sign
          norm   B        ;B=dq
          nop
          xc     2, AGT         
          sub    #0x8000, B
          ret    ;return B
sign1:
          ldm    AR6, A
          ld     #0, B
          nop
          xc     2, AGT
          ld     #0x8000, B
          ret    ;return(B)
          
          
            .end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -