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

📄 quant.sa

📁 DM642的mpeg4编码
💻 SA
字号:
;filename:quant.sa
;author:lvxu

		.sect ".text:Mpeg4IntraQuant2sa"
		.global _Mpeg4IntraQuant2sa
_Mpeg4IntraQuant2sa	.cproc dst,src,iScalar,dcMulti,acMulti
		.no_mdep
		.reg   acLevel,acSign,acResult

		.reg   loop_num		;
		
			LDH *src++,acLevel
			CMPLT acLevel,0,acSign;acLevel<0,acSign=1;else acSign=0
[acSign]	NEG iScalar,iScalar
			SHRU iScalar,1,iScalar
			ADD iScalar,acLevel,acLevel
			MPYU acLevel,dcMulti,acResult 	
			SHRU acResult,16,acResult
			STH acResult,*dst++

			MVK 63,loop_num
Mpeg4IntraQuant2sa_LOOP:.trip 63,63
			LDH *src++,acLevel
			CMPLT acLevel,0,acSign
			ABS acLevel,acLevel
			MPYU acLevel,acMulti,acResult
			SHRU acResult,16,acResult
[acSign]	NEG acResult,acResult
			STH acResult,*dst++
			SUB loop_num,1,loop_num
[loop_num]	B Mpeg4IntraQuant2sa_LOOP
			
			.endproc



			
	.sect ".text:Mpeg4IntraDeQuant2sa"
		.global _Mpeg4IntraDeQuant2sa
_Mpeg4IntraDeQuant2sa	.cproc dst,src,iQuant,iScalar
		.no_mdep
		.reg   quant_m_2,level

		.reg   loop_num,tmpdata,tmp,maxValue,minValue
		.reg   quant_addnum,temp
			
			SHL iQuant,1,quant_m_2	;quant_m_2 = iQuant << 1;

			MVK 2047,maxValue
			MVK -2048,minValue

			ZERO quant_addnum	;
			AND 0x01,iQuant,tmp
	[!tmp]	MVK -1,quant_addnum	;even
			ADD quant_addnum,iQuant,temp 	;quant_add = (iQuant & 1 ? iQuant : iQuant - 1);			
			MV  temp,quant_addnum


			LDH *src++,level
			MPYU level,iScalar,level
			CMPGT level,maxValue,tmp
	[tmp]	MV maxValue,level
			CMPLT level,minValue,tmp
	[tmp]	MV minValue,level			;DC dequant
			STH level,*dst++	
			
			MVK 63,loop_num
Mpeg4IntraDeQuant2sa_LOOP: .trip 63,63
			LDH *src++,level
			CMPLT level,0,tmp	;level<0,tmp=1;level>=0,tmp=0
	[tmp]	NEG level,level
			MPYU quant_m_2,level,level
			ADD level,quant_addnum,level

		CMPGT level,maxValue,tmp
	[tmp]	MV maxValue,level
			CMPLT level,minValue,tmp
	[tmp]	MV minValue,level			;DC dequant

			STH level,*dst++	
			SUB loop_num,1,loop_num			
[loop_num]	B Mpeg4IntraDeQuant2sa_LOOP	

			.endproc
		

⌨️ 快捷键说明

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