transferidct.c

来自「VC++视频开发实例集锦(包括“远程视频监控”"语音识别系统&quot」· C语言 代码 · 共 37 行

C
37
字号


#include "portab.h"

void transferIDCT_add(int16_t *sourceS16, uint8_t *destU8, int stride) {
	int x, y;

	stride -= 8;	
	for (y=0; y<8; y++) {
		for (x=0; x<8; x++) {
			#define SUM16 (*(destU8) + *(sourceS16))
			if      (SUM16 > 255) *(destU8) = 255;
			else if (SUM16 <   0) *(destU8) =   0;
			else                  *(destU8) = SUM16;
			sourceS16++;
			destU8++;
		}
		destU8 += stride;
	}
}

void transferIDCT_copy(int16_t *sourceS16, uint8_t *destU8, int stride) {
	int x, y;

	stride -= 8;	
	for (y=0; y<8; y++) {
		for (x=0; x<8; x++) {
			if      (*(sourceS16) > 255) *(destU8) = 255;
			else if (*(sourceS16) <   0) *(destU8) =   0;
			else                         *(destU8) = (unsigned char) *(sourceS16);
			sourceS16++;
			destU8++;
		}
		destU8 += stride;
	}
}

⌨️ 快捷键说明

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