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

📄 img_pix_expand_d.c

📁 dm642函数库
💻 C
字号:
/* ======================================================================== */
/*  TEXAS INSTRUMENTS, INC.                                                 */
/*                                                                          */
/*  NAME                                                                    */
/*      IMG_pix_expand_d.c -- Example file for IMG_pix_expand               */
/*                                                                          */
/*  USAGE                                                                   */
/*      This file contains code for demonstrating the C64x IMGLIB           */
/*      IMG_pix_expand function. All inputs to the function contain         */
/*      random data. The assembly version of IMG_pix_expand is called and   */
/*      the output is compared with the reference C code using              */
/*      mem_compare() in support.c.                                         */
/* ------------------------------------------------------------------------ */
/*          Copyright (C) 2003 Texas Instruments, Incorporated.             */
/*                          All Rights Reserved.                            */
/* ======================================================================== */
    
#include <stdio.h>
#include <stdlib.h>

/* Header file for the memory compare function */
int mem_compare(const void *ptr1, const char *name1,
                const void *ptr2, const char *name2, int len);

/* Header file for the DSPLIB function */
#include "IMG_pix_expand.h"

/* Header file for the C function */
void IMG_pix_expand_c(int n, unsigned char * in_data, short * out_data);

/* ======================================================================== */
/*  IMGLIB function-specific alignments. Refer to the                       */
/*  TMS320C64x IMG Library Programmer's Reference for details.              */
/* ======================================================================== */
#pragma DATA_ALIGN(in_data, 8);
#pragma DATA_ALIGN(out_data_asm, 8);
#pragma DATA_ALIGN(out_data_c, 8);

/* ======================================================================== */
/*  Constant dataset.                                                       */
/* ======================================================================== */
#define N    (1024)


/* ======================================================================== */
/*  Initialize arrays with random test data.                                */
/* ======================================================================== */
int     test = 0;

unsigned char  in_data[N] = 
{
     0x12,  0x5A,  0xCA,  0x7A,  0xA0,  0x3F,  0x32,  0x5A,
     0xDC,  0x79,  0x0A,  0x73,  0x19,  0x0F,  0x45,  0x11,
     0xE2,  0x0E,  0x74,  0xC8,  0xB5,  0x3D,  0x00,  0xA6,
     0xD8,  0x33,  0xC8,  0x9A,  0xBC,  0xD3,  0x35,  0xF9,
     0x45,  0x21,  0xE3,  0x11,  0x2E,  0x85,  0xAD,  0xEF,
     0xA3,  0x37,  0xA5,  0xE9,  0x41,  0x34,  0x6B,  0x59,
     0x06,  0x86,  0x26,  0x61,  0x0F,  0xBC,  0xD2,  0x4A,
     0xF1,  0xD5,  0xFF,  0xA9,  0x9E,  0xE9,  0x4E,  0x9F,
     0x6B,  0x6A,  0xC0,  0x78,  0x3A,  0xAA,  0x2F,  0x8B,
     0xCD,  0xF9,  0x6A,  0x34,  0x50,  0xE0,  0x09,  0xBA,
     0x32,  0x08,  0xBC,  0x03,  0xE6,  0x34,  0x5F,  0xF4,
     0xC7,  0x41,  0x4B,  0x30,  0x07,  0x6E,  0xB9,  0x2A,
     0xF2,  0xBB,  0xFF,  0x7A,  0x6D,  0xA4,  0x39,  0x94,
     0x8E,  0x45,  0x58,  0x6A,  0x1D,  0x8D,  0xA1,  0xD2,
     0x31,  0x3E,  0xE4,  0x26,  0x97,  0xC9,  0x5F,  0x00,
     0xF4,  0x20,  0xC5,  0x14,  0xA4,  0xDD,  0x7F,  0x5F,
     0xDE,  0x64,  0xBC,  0x60,  0xF7,  0xD5,  0xB4,  0x6E,
     0xA1,  0xB9,  0x2C,  0x84,  0x2E,  0x59,  0x6A,  0x63,
     0x27,  0xD5,  0xB6,  0x21,  0xFA,  0xF7,  0xC7,  0x6B,
     0x05,  0x5F,  0x87,  0xB6,  0xAC,  0xFB,  0xD1,  0x89,
     0xB8,  0x80,  0x4D,  0x59,  0xAE,  0x23,  0x63,  0xAF,
     0x4D,  0xA3,  0xC9,  0x1C,  0xE9,  0xBC,  0x87,  0x72,
     0xE8,  0xE8,  0x46,  0xAE,  0x77,  0x7E,  0xD8,  0xC0,
     0x6B,  0x93,  0xEE,  0x96,  0x96,  0xAB,  0xF3,  0x23,
     0x6B,  0x6B,  0xCD,  0xAA,  0x2C,  0x5D,  0xAF,  0x6E,
     0x70,  0xBE,  0x88,  0x8C,  0xE6,  0x16,  0xC8,  0x1B,
     0x7B,  0x25,  0x4C,  0x60,  0x4F,  0xD9,  0xD0,  0x5B,
     0xC6,  0xA6,  0x22,  0x8E,  0x24,  0xE5,  0xEC,  0x71,
     0x95,  0x2C,  0xFE,  0x1A,  0x68,  0x5E,  0x60,  0x18,
     0x19,  0x80,  0x0A,  0xF0,  0xD9,  0xB7,  0x67,  0x94,
     0x4D,  0x21,  0x62,  0xA2,  0xA4,  0xBA,  0xC6,  0x7E,
     0xEE,  0x6B,  0x4A,  0x3C,  0x50,  0x61,  0x7E,  0x8D,
     0xBA,  0x64,  0x04,  0x22,  0x4E,  0x8B,  0xB7,  0x61,
     0x34,  0x85,  0xF3,  0x8A,  0xA3,  0xCA,  0x5B,  0xDF,
     0x8F,  0x73,  0x54,  0xBB,  0xBE,  0x1B,  0x24,  0xB3,
     0x5A,  0x7F,  0xF4,  0xFF,  0x96,  0x64,  0xE1,  0x61,
     0xE9,  0x2A,  0x6C,  0x59,  0xD1,  0x08,  0x6F,  0xBD,
     0xB8,  0x93,  0x23,  0x08,  0xF0,  0xA2,  0x98,  0xB1,
     0x46,  0xFD,  0x08,  0x49,  0x0D,  0x44,  0x4B,  0x03,
     0x44,  0x0B,  0x39,  0x1F,  0x14,  0x37,  0xBE,  0x19,
     0x54,  0x63,  0x11,  0xA9,  0xFD,  0x42,  0x1F,  0xF0,
     0xEE,  0xB3,  0xDF,  0x23,  0x02,  0xFB,  0xEE,  0x07,
     0x7B,  0xF6,  0x79,  0xC1,  0x6C,  0x6F,  0xDA,  0x78,
     0x22,  0xDF,  0x12,  0x90,  0x14,  0xC7,  0xFA,  0x79,
     0x48,  0x1B,  0x51,  0xBE,  0x86,  0x3C,  0x87,  0x2B,
     0x3B,  0xEB,  0x73,  0x29,  0x10,  0x9E,  0xD7,  0xEC,
     0x29,  0x25,  0x4A,  0x79,  0x17,  0x64,  0x1C,  0x7C,
     0xF0,  0x5D,  0x5E,  0xDA,  0x69,  0xF2,  0xBB,  0xB8,
     0x1F,  0x4A,  0x19,  0x39,  0x52,  0x28,  0x3F,  0x3C,
     0x01,  0x05,  0xC3,  0xE4,  0xC4,  0xEE,  0xD6,  0xF4,
     0x4D,  0xDD,  0x68,  0xA0,  0xEC,  0xAC,  0x17,  0x79,
     0xBB,  0xCA,  0x27,  0x9F,  0x28,  0xF6,  0x39,  0x36,
     0x95,  0x9E,  0x45,  0x23,  0x7E,  0xC6,  0x48,  0x4F,
     0x01,  0xFE,  0x56,  0x5E,  0x56,  0xE0,  0xDA,  0xDF,
     0xA3,  0x2A,  0x47,  0xCC,  0x5B,  0xC2,  0xC4,  0x58,
     0x05,  0x6D,  0x91,  0x44,  0x46,  0x8D,  0xD0,  0xB3,
     0x13,  0xB6,  0xD4,  0x23,  0x68,  0x10,  0x07,  0xC1,
     0xD7,  0x7F,  0x55,  0x10,  0xC2,  0xDD,  0x23,  0xFB,
     0x99,  0xC0,  0x34,  0x78,  0x9D,  0xD1,  0xEA,  0x46,
     0x70,  0x10,  0x04,  0x3C,  0x8E,  0x33,  0xDB,  0x71,
     0x5C,  0x59,  0x75,  0xF2,  0x2E,  0xAD,  0x24,  0x80,
     0xF5,  0xF9,  0x00,  0xE6,  0xA4,  0x05,  0x2B,  0xA8,
     0xE1,  0x1D,  0x36,  0x0F,  0xA1,  0x7E,  0x1F,  0x55,
     0x36,  0x4F,  0x0E,  0x6D,  0x73,  0x14,  0xD0,  0xC3,
     0x34,  0x24,  0xE4,  0x92,  0x2E,  0xAA,  0xCA,  0x7F,
     0xBC,  0xD8,  0x13,  0xAC,  0x21,  0x69,  0x1A,  0x97,
     0x3D,  0x61,  0x08,  0xF0,  0x3F,  0x37,  0x6D,  0x64,
     0xEE,  0x4C,  0x72,  0x41,  0x41,  0x20,  0x23,  0x99,
     0x67,  0x39,  0xA0,  0xC7,  0xFE,  0x01,  0xD1,  0xBE,
     0x0F,  0x4D,  0xA7,  0x59,  0x7E,  0xA0,  0x38,  0x37,
     0xF4,  0x68,  0xAD,  0xF5,  0x1D,  0x8D,  0x1C,  0xDC,
     0x22,  0x36,  0xEF,  0xD1,  0x2D,  0xCE,  0x6E,  0x6F,
     0xC8,  0x59,  0x72,  0x4C,  0x6B,  0x68,  0x4B,  0x5C,
     0x03,  0x30,  0x02,  0xBF,  0xC7,  0x4F,  0xEA,  0xD1,
     0x6D,  0x98,  0x0C,  0x01,  0xD8,  0x15,  0x22,  0xC1,
     0x2E,  0x25,  0x42,  0xAE,  0xBB,  0x00,  0x5E,  0x37,
     0x97,  0x04,  0x50,  0x52,  0xEC,  0xE5,  0xF6,  0x3F,
     0x13,  0x80,  0xE0,  0x14,  0x1A,  0x14,  0xAF,  0xDB,
     0x82,  0xE4,  0x30,  0x05,  0xEA,  0x54,  0xB7,  0x90,
     0xEA,  0xDA,  0xD5,  0xD6,  0x0B,  0x9B,  0xE2,  0xAC,
     0xD4,  0x09,  0x09,  0xB4,  0x13,  0xB0,  0x11,  0xCA,
     0x63,  0xF9,  0xB1,  0xE5,  0x0E,  0x5C,  0xA5,  0xF2,
     0xF6,  0x93,  0x91,  0x0D,  0xC9,  0x34,  0x90,  0x6D,
     0xAA,  0xCC,  0xA5,  0x3F,  0x7A,  0x3C,  0x27,  0xA2,
     0x00,  0x17,  0x54,  0x78,  0x81,  0xDA,  0x1B,  0x2B,
     0x94,  0x3E,  0x45,  0xE2,  0xB5,  0xA3,  0x12,  0x0F,
     0xA4,  0x31,  0xF8,  0xCD,  0xC8,  0x81,  0x3A,  0x28,
     0xFE,  0x15,  0xE1,  0x85,  0x23,  0x9D,  0xCE,  0xB8,
     0xCD,  0xBE,  0xAB,  0x09,  0xCE,  0x41,  0xF0,  0xAE,
     0x9B,  0x29,  0x7A,  0x13,  0xBC,  0x9D,  0x71,  0x6A,
     0xCB,  0x49,  0x79,  0x2D,  0x2F,  0xF0,  0x22,  0x8C,
     0xCB,  0xB9,  0xB8,  0x44,  0xC3,  0x25,  0xF2,  0x05,
     0x3A,  0x71,  0x7B,  0xB5,  0xF7,  0x49,  0xD4,  0xAB,
     0x32,  0xA4,  0x53,  0xE4,  0x27,  0xC3,  0x8A,  0x88,
     0x16,  0x4A,  0xFE,  0x56,  0x17,  0x2C,  0xB9,  0x84,
     0x2B,  0xC1,  0xE3,  0x81,  0x6D,  0x17,  0x68,  0x37,
     0x97,  0xFE,  0x30,  0xEB,  0xC4,  0xE2,  0xD9,  0x83,
     0x4D,  0xAA,  0x09,  0xA0,  0x30,  0xD3,  0x04,  0x04,
     0xC9,  0x32,  0xE8,  0xC2,  0x7D,  0x70,  0x46,  0x8D,
     0x9B,  0xB1,  0x5B,  0xC1,  0xA9,  0xF7,  0xCF,  0x97,
     0x00,  0xFC,  0x8D,  0xBA,  0xAA,  0x51,  0x32,  0x27,
     0x1D,  0xD3,  0x91,  0xBB,  0xB8,  0xAE,  0x05,  0x81,
     0x9C,  0x63,  0x46,  0xCF,  0x14,  0x2A,  0xD4,  0xFD,
     0xF2,  0xD8,  0xCE,  0x40,  0x66,  0x8F,  0xDC,  0x91,
     0xBA,  0xB7,  0xE0,  0x16,  0xAD,  0x4C,  0xE8,  0xBF,
     0x22,  0x06,  0x17,  0x91,  0xDF,  0x29,  0x56,  0x51,
     0xC5,  0x40,  0x24,  0x49,  0x58,  0x22,  0xCC,  0x9B,
     0xB2,  0xFC,  0x40,  0xC0,  0x50,  0x1F,  0x71,  0x19,
     0x06,  0x11,  0x87,  0x53,  0xBE,  0xD2,  0x72,  0xCF,
     0xCF,  0xBB,  0xED,  0xF2,  0x34,  0x3C,  0x85,  0x4A,
     0xAB,  0xF9,  0x68,  0x84,  0x55,  0xB1,  0xB1,  0x02,
     0x13,  0xD6,  0x69,  0x87,  0xF9,  0x37,  0xF5,  0x91,
     0xDA,  0xE0,  0x4C,  0x6B,  0x18,  0x58,  0xB4,  0x7C,
     0x2B,  0x5A,  0x71,  0x21,  0x02,  0x25,  0x98,  0x52,
     0xCD,  0x13,  0xC9,  0x6A,  0xB4,  0x77,  0x81,  0x5B,
     0x6A,  0xEF,  0x40,  0xEE,  0x6F,  0xBB,  0x74,  0x95,
     0x0F,  0x40,  0x14,  0x83,  0x13,  0xB5,  0xE5,  0x5D,
     0x13,  0x30,  0x64,  0xA6,  0x3E,  0xEE,  0xB8,  0x13,
     0x50,  0x2C,  0x5B,  0x0E,  0x83,  0x2B,  0x3C,  0xE8,
     0x5B,  0x53,  0x41,  0x22,  0x9E,  0x8C,  0x03,  0x3E,
     0x71,  0x65,  0x67,  0x2D,  0xFD,  0x63,  0xD9,  0x5A,
     0x7C,  0x83,  0x3B,  0x8A,  0x8C,  0xDB,  0x6C,  0x68,
     0xB8,  0x73,  0x2E,  0x48,  0x32,  0xDD,  0x10,  0xD9,
     0x4F,  0x9F,  0xE9,  0x74,  0x19,  0x5F,  0xE5,  0x58,
     0x49,  0x5A,  0x48,  0xEC,  0x6A,  0x7A,  0x29,  0x1F,
     0x44,  0x36,  0xE0,  0x6F,  0xE7,  0x47,  0xD1,  0xFA,
     0x59,  0x5A,  0x80,  0xC2,  0x5B,  0x58,  0xA8,  0xFE,
     0xBE,  0xE6,  0xDE,  0xDC,  0xC0,  0x39,  0xFF,  0xFE
};

short  out_data_asm[N];
short  out_data_c[N];

int main()
{   

/* ======================================================================== */
/*  Call hand-coded assembly version (located in IMG64x.lib library         */ 
/*  archive - see Project -> Build Options -> Linker -> Include Libraries)  */
/* ======================================================================== */   
    IMG_pix_expand(N, in_data, out_data_asm);
    
/* ======================================================================== */
/*  Call natural-C version                                                  */
/* ======================================================================== */
    IMG_pix_expand_c(N, in_data, out_data_c);

/* ======================================================================== */
/*  Compare outputs using mem_compare() in support.c.  If different,        */
/*  mem_compare() displays location of failures.                            */
/* ======================================================================== */
    test = mem_compare(out_data_asm, "out_data_asm", out_data_c, "out_data_c", sizeof(out_data_c));
    if (test == 0) 
    {
      printf("out_data_asm vs. out_data_c");
      printf("\nVerification successful.\n");
    }

}

/* ======================================================================== */
/*  End of file:  img_pix_expand_d.c                                        */
/* ------------------------------------------------------------------------ */
/*          Copyright (C) 2003 Texas Instruments, Incorporated.             */
/*                          All Rights Reserved.                            */
/* ======================================================================== */

⌨️ 快捷键说明

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