📄 imxlib.c
字号:
/*****************************************************************************
Project: TI iMX Library
-----------------------------
File: imxlib.c
Description: high level iMX functions for image processing
these routines enocde, start the execution and wait for
completion
Created: 07/29/1999, Ching-Yu Hung, Deepu Talla
Copyright 1999, Texas Instruments
------------------------------------------------------------
Version:
$Id: imxlib.c,v 1.2 1999/10/18 20:17:05 hung Exp $
History:
$Log: imxlib.c,v $
Revision 1.2 1999/10/18 20:17:05 hung
Cleaned up argument names and orders. Added a few functions.
Revision 1.1 1999/10/13 05:04:05 illgner
Initial revision
*****************************************************************************/
#include "imx.h"
void imxenc_yshift
(
short *input_ptr,
short *coeff_ptr,
short *output_ptr,
short y_width,
short y_height,
short *cmdptr
)
{
short lpend1, lpend2, lpend3, lpend4;
short data_inc1, data_inc2, data_inc3, data_inc4;
short data_inc_mask1, data_inc_mask2, data_inc_mask3;
short coef_inc1, coef_inc2, coef_inc3, coef_inc4;
short coef_inc_mask1, coef_inc_mask2, coef_inc_mask3;
short outp_inc1, outp_inc2, outp_inc3, outp_inc4;
short outp_inc_mask1, outp_inc_mask2, outp_inc_mask3;
short dpoints, cpoints, opoints;
short acclp, acc_mode;
short operation = 0;
short round_shift = 0;
/* Y Left shift 8bits */
lpend1 = 0;
lpend2 = 0;
lpend3 = y_height - 1;
lpend4 = y_width / 4 - 1;
data_inc4 = 0;
data_inc3 = 0;
data_inc2 = 8;
data_inc1 = 8;
data_inc_mask1 = 1;
data_inc_mask2 = 0;
data_inc_mask3 = 0;
coef_inc4 = 0;
coef_inc3 = 0;
coef_inc2 = 0;
coef_inc1 = 0;
coef_inc_mask1 = 0;
coef_inc_mask2 = 0;
coef_inc_mask3 = 0;
outp_inc4 = 0;
outp_inc3 = 0;
outp_inc2 = 8;
outp_inc1 = 8;
outp_inc_mask3 = 0;
outp_inc_mask2 = 0;
outp_inc_mask1 = 1;
acclp = 3;
acc_mode = 0;
dpoints = 4;
cpoints = 1;
opoints = 4;
imx_sim( acc_mode, operation,
lpend1, lpend2, lpend3, lpend4,
input_ptr, coeff_ptr, output_ptr,
data_inc1, data_inc2, data_inc3, data_inc4,
data_inc_mask1, data_inc_mask2, data_inc_mask3,
coef_inc1, coef_inc2, coef_inc3, coef_inc4,
coef_inc_mask1, coef_inc_mask2, coef_inc_mask3,
outp_inc1, outp_inc2, outp_inc3, outp_inc4,
outp_inc_mask1, outp_inc_mask2, outp_inc_mask3,
dpoints, cpoints, opoints,
iMXTYPE_SHORT, iMXTYPE_SHORT, iMXTYPE_SHORT,
acclp, round_shift, 0, cmdptr);
}
void imxenc_uvadd2y
(
short *input_ptr,
short *coeff_ptr,
short *output_ptr,
short uv_width,
short uv_height,
short *cmdptr
)
{
short lpend1, lpend2, lpend3, lpend4;
short data_inc1, data_inc2, data_inc3, data_inc4;
short data_inc_mask1, data_inc_mask2, data_inc_mask3;
short coef_inc1, coef_inc2, coef_inc3, coef_inc4;
short coef_inc_mask1, coef_inc_mask2, coef_inc_mask3;
short outp_inc1, outp_inc2, outp_inc3, outp_inc4;
short outp_inc_mask1, outp_inc_mask2, outp_inc_mask3;
short dpoints, cpoints, opoints;
short acclp, acc_mode;
short operation = 2;
short round_shift = 0;
/* Y Left shift 8bits */
lpend1 = 0;
lpend2 = 2;
lpend3 = uv_height - 1;
lpend4 = uv_width - 1;
data_inc4 = 0;
data_inc3 = 4;
data_inc2 = 4;
data_inc1 = -uv_height * uv_width * 4 + 6;
data_inc_mask1 = 3;
data_inc_mask2 = 1;
data_inc_mask3 = 0;
coef_inc4 = 0;
coef_inc3 = 2;
coef_inc2 = 2;
coef_inc1 = 2;
coef_inc_mask1 = 3;
coef_inc_mask2 = 1;
coef_inc_mask3 = 0;
outp_inc4 = 0;
outp_inc3 = 4;
outp_inc2 = 4;
outp_inc1 = -uv_height * uv_width * 4 + 6;
outp_inc_mask3 = 0;
outp_inc_mask2 = 1;
outp_inc_mask1 = 3;
acclp = 3;
acc_mode = 0;
dpoints = 1;
cpoints = 1;
opoints = 1;
imx_sim( acc_mode, operation,
lpend1, lpend2, lpend3, lpend4,
input_ptr, coeff_ptr, output_ptr,
data_inc1, data_inc2, data_inc3, data_inc4,
data_inc_mask1, data_inc_mask2, data_inc_mask3,
coef_inc1, coef_inc2, coef_inc3, coef_inc4,
coef_inc_mask1, coef_inc_mask2, coef_inc_mask3,
outp_inc1, outp_inc2, outp_inc3, outp_inc4,
outp_inc_mask1, outp_inc_mask2, outp_inc_mask3,
dpoints, cpoints, opoints,
iMXTYPE_SHORT, iMXTYPE_SHORT, iMXTYPE_SHORT,
acclp, round_shift, 0, cmdptr);
}
void imxenc_yyuv2yuyv
(
short *input_ptr,
short *u_ptr,
short *v_ptr,
short *coeff_ptr,
short *output_ptr,
short y_width,
short y_height,
short uv_width,
short uv_height,
short *cmdptr
)
{
imxenc_yshift(input_ptr, coeff_ptr, output_ptr, y_width, y_height, cmdptr);
imxenc_uvadd2y(input_ptr, u_ptr, output_ptr, uv_width, uv_height, cmdptr);
imxenc_uvadd2y(input_ptr + 1, v_ptr, output_ptr + 1, uv_width, uv_height, cmdptr);
return;
}
void imxenc_reshape
(
short *input_yptr,
short *input_uvptr,
short *coeff_ptr,
short *output_ptr,
short input_ywidth,
short input_yheight,
short input_uvwidth,
short input_uvheight,
short output_width,
short output_height,
short round_shift,
short *cmdptr
)
{
short lpend1, lpend2, lpend3, lpend4;
short data_inc1, data_inc2, data_inc3, data_inc4;
short data_inc_mask1, data_inc_mask2, data_inc_mask3;
short coef_inc1, coef_inc2, coef_inc3, coef_inc4;
short coef_inc_mask1, coef_inc_mask2, coef_inc_mask3;
short outp_inc1, outp_inc2, outp_inc3, outp_inc4;
short outp_inc_mask1, outp_inc_mask2, outp_inc_mask3;
short dpoints, cpoints, opoints;
short acclp, acc_mode;
short operation = 0;
short cmdlen = 0;
lpend1 = 0;
lpend2 = 0;
lpend3 = output_height - 1;
lpend4 = output_width / 2 - 1;
data_inc4 = 0;
data_inc3 = 0;
data_inc2 = 4;
data_inc1 = 2 * (input_ywidth - output_width) + 4;
data_inc_mask1 = 1;
data_inc_mask2 = 0;
data_inc_mask3 = 0;
coef_inc4 = 0;
coef_inc3 = 0;
coef_inc2 = 0;
coef_inc1 = 0;
coef_inc_mask1 = 0;
coef_inc_mask2 = 0;
coef_inc_mask3 = 0;
outp_inc4 = 0;
outp_inc3 = 0;
outp_inc2 = 4;
outp_inc1 = 4;
outp_inc_mask3 = 0;
outp_inc_mask2 = 0;
outp_inc_mask1 = 1;
acclp = 3;
acc_mode = 0;
dpoints = 2;
cpoints = 1;
opoints = 2;
imx_sim(
acc_mode, operation,
lpend1, lpend2, lpend3, lpend4,
input_yptr, coeff_ptr, output_ptr,
data_inc1, data_inc2, data_inc3, data_inc4,
data_inc_mask1, data_inc_mask2, data_inc_mask3,
coef_inc1, coef_inc2, coef_inc3, coef_inc4,
coef_inc_mask1, coef_inc_mask2, coef_inc_mask3,
outp_inc1, outp_inc2, outp_inc3, outp_inc4,
outp_inc_mask1, outp_inc_mask2, outp_inc_mask3,
dpoints, cpoints, opoints,
iMXTYPE_SHORT, iMXTYPE_SHORT, iMXTYPE_SHORT,
acclp, round_shift, 0, cmdptr);
lpend1 = 0;
lpend2 = 1;
lpend3 = output_height - 1;
lpend4 = output_width / 2 - 1;
data_inc4 = 0;
data_inc3 = 4;
data_inc2 = 2 * (input_uvwidth - output_width) + 4;
data_inc1 = 2 * input_uvwidth * (input_uvheight - output_height + 1) - 2 * output_width + 4;
data_inc_mask1 = 3;
data_inc_mask2 = 1;
data_inc_mask3 = 0;
outp_inc4 = 0;
outp_inc3 = 0;
outp_inc2 = 4;
outp_inc1 = 4;
outp_inc_mask3 = 0;
outp_inc_mask2 = 0;
outp_inc_mask1 = 1;
output_ptr += output_width * output_height;
operation = 2;
cpoints = 4;
round_shift = 0;
imx_sim(
acc_mode, operation,
lpend1, lpend2, lpend3, lpend4,
input_uvptr, coeff_ptr, output_ptr,
data_inc1, data_inc2, data_inc3, data_inc4,
data_inc_mask1, data_inc_mask2, data_inc_mask3,
coef_inc1, coef_inc2, coef_inc3, coef_inc4,
coef_inc_mask1, coef_inc_mask2, coef_inc_mask3,
outp_inc1, outp_inc2, outp_inc3, outp_inc4,
outp_inc_mask1, outp_inc_mask2, outp_inc_mask3,
dpoints, cpoints, opoints,
iMXTYPE_SHORT, iMXTYPE_SHORT, iMXTYPE_SHORT,
acclp, round_shift, 0, cmdptr);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -