worksheet.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:1k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. static long long  mpeg3_MMX_601_Y_COEF = 0x0000004000400040;
  5. inline void mpeg3_601_mmx(unsigned long y, 
  6. unsigned long *output)
  7. {
  8. asm("
  9. /* Output will be 0x00rrggbb */
  10. movd (%0), %%mm0;          /* Load y   0x00000000000000yy */
  11. /* pmullw mpeg3_MMX_601_Y_COEF, %%mm0;   // Scale y   0x00000000000000yy */
  12.   psllw $6, %%mm0;                /* Shift y coeffs 0x0000yyy0yyy0yyy0 */
  13. movd %%mm0, (%1);          /* Store output */
  14. "
  15. :
  16. : "r" (&y), "r" (output));
  17. }
  18. int main(int argc, char *argv[])
  19. {
  20. unsigned char output[1024];
  21. memset(output, 0, 1024);
  22. mpeg3_601_mmx(1, (unsigned long*)output);
  23. printf("%02x%02xn", *(unsigned char*)&output[1], *(unsigned char*)&output[0]);
  24. }