transferIDCT.c
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. #include "portab.h"
  2. void transferIDCT_add(int16_t *sourceS16, uint8_t *destU8, int stride) {
  3. int x, y;
  4. stride -= 8;
  5. for (y=0; y<8; y++) {
  6. for (x=0; x<8; x++) {
  7. #define SUM16 (*(destU8) + *(sourceS16))
  8. if      (SUM16 > 255) *(destU8) = 255;
  9. else if (SUM16 <   0) *(destU8) =   0;
  10. else                  *(destU8) = SUM16;
  11. sourceS16++;
  12. destU8++;
  13. }
  14. destU8 += stride;
  15. }
  16. }
  17. void transferIDCT_copy(int16_t *sourceS16, uint8_t *destU8, int stride) {
  18. int x, y;
  19. stride -= 8;
  20. for (y=0; y<8; y++) {
  21. for (x=0; x<8; x++) {
  22. if      (*(sourceS16) > 255) *(destU8) = 255;
  23. else if (*(sourceS16) <   0) *(destU8) =   0;
  24. else                         *(destU8) = (unsigned char) *(sourceS16);
  25. sourceS16++;
  26. destU8++;
  27. }
  28. destU8 += stride;
  29. }
  30. }