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

📄 dsputil.c

📁 君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图片解码,浏览,电子书,录音,想学ucos,识货的人就下吧 russblock fmradio explore set
💻 C
📖 第 1 页 / 共 5 页
字号:
        dst[j] = (2731*(3*src[j] + 2*src[j+1] + 4*src[j+stride] + 3*src[j+stride+1] + 6)) >> 15;      }      src += stride;      dst += stride;    }}static inline void put_tpel_pixels_mc02_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (683*(src[j] + 2*src[j+stride] + 1)) >> 11;      }      src += stride;      dst += stride;    }}static inline void put_tpel_pixels_mc21_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (2731*(3*src[j] + 4*src[j+1] + 2*src[j+stride] + 3*src[j+stride+1] + 6)) >> 15;      }      src += stride;      dst += stride;    }}static inline void put_tpel_pixels_mc22_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (2731*(2*src[j] + 3*src[j+1] + 3*src[j+stride] + 4*src[j+stride+1] + 6)) >> 15;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    switch(width){    case 2: avg_pixels2_c (dst, src, stride, height); break;    case 4: avg_pixels4_c (dst, src, stride, height); break;    case 8: avg_pixels8_c (dst, src, stride, height); break;    case 16:avg_pixels16_c(dst, src, stride, height); break;    }}static inline void avg_tpel_pixels_mc10_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((683*(2*src[j] + src[j+1] + 1)) >> 11) + 1) >> 1;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc20_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((683*(src[j] + 2*src[j+1] + 1)) >> 11) + 1) >> 1;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc01_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((683*(2*src[j] + src[j+stride] + 1)) >> 11) + 1) >> 1;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc11_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((2731*(4*src[j] + 3*src[j+1] + 3*src[j+stride] + 2*src[j+stride+1] + 6)) >> 15) + 1) >> 1;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc12_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((2731*(3*src[j] + 2*src[j+1] + 4*src[j+stride] + 3*src[j+stride+1] + 6)) >> 15) + 1) >> 1;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc02_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((683*(src[j] + 2*src[j+stride] + 1)) >> 11) + 1) >> 1;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc21_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((2731*(3*src[j] + 4*src[j+1] + 2*src[j+stride] + 3*src[j+stride+1] + 6)) >> 15) + 1) >> 1;      }      src += stride;      dst += stride;    }}static inline void avg_tpel_pixels_mc22_c(uint8_t *dst, const uint8_t *src, int stride, int width, int height){    int i,j;    for (i=0; i < height; i++) {      for (j=0; j < width; j++) {        dst[j] = (dst[j] + ((2731*(2*src[j] + 3*src[j+1] + 3*src[j+stride] + 4*src[j+stride+1] + 6)) >> 15) + 1) >> 1;      }      src += stride;      dst += stride;    }}#ifdef JZ4740_MXU_OPTstatic void put_mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){  int i;  uint32_t src_aln0,src_rs0;  int mul_ct0,mul_ct1,mul_ct2,mul_ct3;  int ct0;  mul_ct0=0x14141414;   //20 20 20 20  mul_ct1=0x06060606;   // 6  6  6  6  mul_ct2=0x03030303;   // 3  3  3  3  mul_ct3=0x01010101;   // 1  1  1  1      ct0=0x00100010;   //   16    16  src_aln0 = (((uint32_t)src) & 0xFFFFFFFC);  src_rs0 = 4-(((uint32_t)src) & 3);  S32I2M(xr15,mul_ct0); //xr15:20 20 20 20  S32I2M(xr14,mul_ct1); //xr14:6  6  6  6  S32I2M(xr13,mul_ct2); //xr13:3  3  3  3  S32I2M(xr12,mul_ct3); //xr12:1  1  1  1  S32I2M(xr11,    ct0); //xr11:  16    16  for(i=0; i<h; i++)  {  S32LDD(xr1,src_aln0,0);  S32LDD(xr2,src_aln0,4);  S32LDD(xr3,src_aln0,8);  S32ALN(xr1,xr2,xr1,src_rs0);  //xr1:src[3] src[2] src[1] src[0]  S32ALN(xr2,xr3,xr2,src_rs0);  //xr2:src[7] src[6] src[5] src[4]      S32ALN(xr5,xr1,xr1,1); //xr5:src[2] src[1] src[0] src[3]  S32ALN(xr6,xr1,xr1,2); //xr6:src[1] src[0] src[3] src[2]  S32ALN(xr7,xr1,xr1,3); //xr7:src[0] src[3] src[2] src[1]  S32ALN(xr8,xr1,xr7,1); //xr8:src[2] src[1] src[0] src[0]  S32ALN(xr9,xr8,xr6,1); //xr9:src[1] src[0] src[0] src[1]  S32ALN(xr10,xr9,xr8,1);//xr10: src[0] src[0] src[1] src[2]    Q8MUL(xr5,xr1,xr15,xr4); //xr5:src[3]*20 src[2]*20 xr4:src[1]*20 src[0]*20  Q8MAC_SS(xr5,xr8,xr14,xr4);//xr5:src[3]*20-src[2]*6 src[2]*20-src[1]*6                              //xr4:src[1]*20-src[0]*6 src[0]*20-src[0]*6  Q8MAC_AA(xr5,xr9,xr13,xr4);//xr5:xr3+src[1]*3 xr3+src[0]*3 xr4:xr4+src[0]*3 xr4+src[1]*3  Q8MAC_SS(xr5,xr10,xr12,xr4);//xr5:xr3-src[0]  xr3-src[0]  xr4:xr4-src[1] xr4-src[2]    S32ALN(xr8,xr2,xr1,3);     //xr8:src[4] src[3] src[2] src[1]  S32ALN(xr9,xr2,xr1,2);     //xr9:src[5] src[4] src[3] src[2]  S32ALN(xr10,xr2,xr1,1);    //xr10:src[6]src[5] src[4] src[3]    Q8MAC_AA(xr5,xr8,xr15,xr4);//xr5:xr3+src[4]*20 xr3+src[3]*20 xr4:xr4+src[2]*20 xr4+src[1]*20  Q8MAC_SS(xr5,xr9,xr14,xr4);//xr5:xr3-src[5]*6  xr3-src[4]*6  xr4:xr4-src[3]*6  xr4-src[2]*6  Q8MAC_AA(xr5,xr10,xr13,xr4);  Q8MAC_SS(xr5,xr2,xr12,xr4);  Q16ACC_AA(xr5,xr11,xr0,xr4);   Q16SAR(xr5,xr5,xr4,xr4,5);  Q16SAT(xr5,xr5,xr4);        //xr5:dst[3] dst[2] dst[1] dst[0]   ///////////////////////////////////////////  Q8MUL(xr1,xr2,xr15,xr4);    //xr1:src[7]*20 src[6]*20 xr4:src[5]*20 src[4]*20  Q8MAC_SS(xr1,xr10,xr14,xr4);  Q8MAC_AA(xr1,xr9 ,xr13,xr4);  Q8MAC_SS(xr1,xr8 ,xr12,xr4);    S32LDD(xr6,src_aln0,0xc);     S32ALN(xr3,xr6,xr3,src_rs0); //xr3:src[11] src[10] src[9] src[8]  S32ALN(xr7,xr3,xr2,1); //xr7:src[10] src[9]  src[8] src[7]  S32ALN(xr8,xr3,xr2,2); //xr8:src[9]  src[8]  src[7] src[6]  S32ALN(xr9,xr3,xr2,3); //xr9:src[8]  src[7]  src[6] src[5]  Q8MAC_AA(xr1,xr9,xr15,xr4);  Q8MAC_SS(xr1,xr8,xr14,xr4);  Q8MAC_AA(xr1,xr7,xr13,xr4);  Q8MAC_SS(xr1,xr3,xr12,xr4);  Q16ACC_AA(xr1,xr11,xr0,xr4);  Q16SAR(xr1,xr1,xr4,xr4,5);  Q16SAT(xr1,xr1,xr4);        //xr1:dst[7] dst[6] dst[5] dst[4]  ///////////////////////////////////////////    Q8MUL(xr4,xr3,xr15,xr2);  Q8MAC_SS(xr4,xr7,xr14,xr2);  Q8MAC_AA(xr4,xr8,xr13,xr2);  Q8MAC_SS(xr4,xr9,xr12,xr2);  S32LDD(xr10,src_aln0,0x10);   S32ALN(xr6,xr10,xr6,src_rs0); //xr6:src[15] src[14] src[13] src[12]    S32ALN(xr7,xr6,xr3,1);//xr7 :src[14] src[13] src[12] src[11]  S32ALN(xr8,xr6,xr3,2);//xr8 :src[13] src[12] src[11] src[10]  S32ALN(xr9,xr6,xr3,3);//xr9 :src[12] src[11] src[10] src[9]  Q8MAC_AA(xr4,xr7,xr13,xr2);  Q8MAC_SS(xr4,xr8,xr14,xr2);  Q8MAC_SS(xr4,xr6,xr12,xr2);  Q8MAC_AA(xr4,xr9,xr15,xr2);  Q16ACC_AA(xr4,xr11,xr0,xr2);  Q16SAR(xr4,xr4,xr2,xr2,5);  Q16SAT(xr4,xr4,xr2);       //xr4:dst[11] dst[10] dst[9] dst[8]  //////////////////////////////////////////////////  Q8MUL(xr2,xr6,xr15,xr3);  //xr2:src[15]*20 src[14]*20 xr3:src[13]*20 src[12]*20  Q8MAC_SS(xr2,xr7,xr14,xr3);  Q8MAC_AA(xr2,xr8,xr13,xr3);  Q8MAC_SS(xr2,xr9,xr12,xr3);  S32LDD(xr7,src_aln0,0x14);   S32ALN(xr10,xr7,xr10,src_rs0);//xr10:src[19] src[18] src[17] src[16]  S32ALN(xr7,xr10,xr6,3); //xr7:src[16]src[15] src[14] src[13]  S32ALN(xr8,xr10,xr7, 3); //xr8:src[16]src[16]src[15] src[14]  S32ALN(xr9,xr6,xr6, 1); //xr9:src[14] src[13] src[12] src[15]  Q8MAC_AA(xr2,xr7,xr15,xr3);  Q8MAC_SS(xr2,xr8,xr14,xr3);  S32ALN(xr7,xr9,xr8,3);     //xr7:src[15] src[16] src[16] src[15]   S32ALN(xr8,xr8,xr7,3);     //xr8:src[14] src[15] src[16] src[16]  Q8MAC_AA(xr2,xr7,xr13,xr3);  Q8MAC_SS(xr2,xr8,xr12,xr3);  Q16ACC_AA(xr2,xr11,xr0,xr3);  Q16SAR(xr2,xr2,xr3,xr3,5);  Q16SAT(xr2,xr2,xr3);      //xr2:dst[15] dst[14] dst[13] dst[12]    S32STD(xr5,dst,0x0);  S32STD(xr1,dst,0x4);  S32STD(xr4,dst,0x8);  S32STD(xr2,dst,0xc);  dst += dstStride;  src_aln0 +=srcStride;}}#elsestatic void put_mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){  uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;  int i;  for(i=0; i<h; i++)   {   dst[ 0]=cm[(((src[ 0]+src[ 1])*20 - (src[ 0]+src[ 2])*6 + (src[ 1]+src[ 3])*3 - (src[ 2]+src[ 4]))+16)>>5];   dst[ 1]=cm[(((src[ 1]+src[ 2])*20 - (src[ 0]+src[ 3])*6 + (src[ 0]+src[ 4])*3 - (src[ 1]+src[ 5]))+16)>>5];   dst[ 2]=cm[(((src[ 2]+src[ 3])*20 - (src[ 1]+src[ 4])*6 + (src[ 0]+src[ 5])*3 - (src[ 0]+src[ 6]))+16)>>5];   dst[ 3]=cm[(((src[ 3]+src[ 4])*20 - (src[ 2]+src[ 5])*6 + (src[ 1]+src[ 6])*3 - (src[ 0]+src[ 7]))+16)>>5];   dst[ 4]=cm[(((src[ 4]+src[ 5])*20 - (src[ 3]+src[ 6])*6 + (src[ 2]+src[ 7])*3 - (src[ 1]+src[ 8]))+16)>>5];   dst[ 5]=cm[(((src[ 5]+src[ 6])*20 - (src[ 4]+src[ 7])*6 + (src[ 3]+src[ 8])*3 - (src[ 2]+src[ 9]))+16)>>5];   dst[ 6]=cm[(((src[ 6]+src[ 7])*20 - (src[ 5]+src[ 8])*6 + (src[ 4]+src[ 9])*3 - (src[ 3]+src[10]))+16)>>5];   dst[ 7]=cm[(((src[ 7]+src[ 8])*20 - (src[ 6]+src[ 9])*6 + (src[ 5]+src[10])*3 - (src[ 4]+src[11]))+16)>>5];   dst[ 8]=cm[(((src[ 8]+src[ 9])*20 - (src[ 7]+src[10])*6 + (src[ 6]+src[11])*3 - (src[ 5]+src[12]))+16)>>5];   dst[ 9]=cm[(((src[ 9]+src[10])*20 - (src[ 8]+src[11])*6 + (src[ 7]+src[12])*3 - (src[ 6]+src[13]))+16)>>5];   dst[10]=cm[(((src[10]+src[11])*20 - (src[ 9]+src[12])*6 + (src[ 8]+src[13])*3 - (src[ 7]+src[14]))+16)>>5];   dst[11]=cm[(((src[11]+src[12])*20 - (src[10]+src[13])*6 + (src[ 9]+src[14])*3 - (src[ 8]+src[15]))+16)>>5];   dst[12]=cm[(((src[12]+src[13])*20 - (src[11]+src[14])*6 + (src[10]+src[15])*3 - (src[ 9]+src[16]))+16)>>5];   dst[13]=cm[(((src[13]+src[14])*20 - (src[12]+src[15])*6 + (src[11]+src[16])*3 - (src[10]+src[16]))+16)>>5];   dst[14]=cm[(((src[14]+src[15])*20 - (src[13]+src[16])*6 + (src[12]+src[16])*3 - (src[11]+src[15]))+16)>>5];   dst[15]=cm[(((src[15]+src[16])*20 - (src[14]+src[16])*6 + (src[13]+src[15])*3 - (src[12]+src[14]))+16)>>5];   dst+=dstStride;   src+=srcStride;   }}#endifstatic void put_no_rnd_mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){   uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;   int i;       for(i=0; i<h; i++)   {   dst[ 0]=cm[(((src[ 0]+src[ 1])*20 - (src[ 0]+src[ 2])*6 + (src[ 1]+src[ 3])*3 - (src[ 2]+src[ 4]))+15)>>5];   dst[ 1]=cm[(((src[ 1]+src[ 2])*20 - (src[ 0]+src[ 3])*6 + (src[ 0]+src[ 4])*3 - (src[ 1]+src[ 5]))+15)>>5];   dst[ 2]=cm[(((src[ 2]+src[ 3])*20 - (src[ 1]+src[ 4])*6 + (src[ 0]+src[ 5])*3 - (src[ 0]+src[ 6]))+15)>>5];   dst[ 3]=cm[(((src[ 3]+src[ 4])*20 - (src[ 2]+src[ 5])*6 + (src[ 1]+src[ 6])*3 - (src[ 0]+src[ 7]))+15)>>5];   dst[ 4]=cm[(((src[ 4]+src[ 5])*20 - (src[ 3]+src[ 6])*6 + (src[ 2]+src[ 7])*3 - (src[ 1]+src[ 8]))+15)>>5];   dst[ 5]=cm[(((src[ 5]+src[ 6])*20 - (src[ 4]+src[ 7])*6 + (src[ 3]+src[ 8])*3 - (src[ 2]+src[ 9]))+15)>>5];   dst[ 6]=cm[(((src[ 6]+src[ 7])*20 - (src[ 5]+src[ 8])*6 + (src[ 4]+src[ 9])*3 - (src[ 3]+src[10]))+15)>>5];   dst[ 7]=cm[(((src[ 7]+src[ 8])*20 - (src[ 6]+src[ 9])*6 + (src[ 5]+src[10])*3 - (src[ 4]+src[11]))+15)>>5];   dst[ 8]=cm[(((src[ 8]+src[ 9])*20 - (src[ 7]+src[10])*6 + (src[ 6]+src[11])*3 - (src[ 5]+src[12]))+15)>>5];   dst[ 9]=cm[(((src[ 9]+src[10])*20 - (src[ 8]+src[11])*6 + (src[ 7]+src[12])*3 - (src[ 6]+src[13]))+15)>>5];   dst[10]=cm[(((src[10]+src[11])*20 - (src[ 9]+src[12])*6 + (src[ 8]+src[13])*3 - (src[ 7]+src[14]))+15)>>5];   dst[11]=cm[(((src[11]+src[12])*20 - (src[10]+src[13])*6 + (src[ 9]+src[14])*3 - (src[ 8]+src[15]))+15)>>5];   dst[12]=cm[(((src[12]+src[13])*20 - (src[11]+src[14])*6 + (src[10]+src[15])*3 - (src[ 9]+src[16]))+15)>>5];   dst[13]=cm[(((src[13]+src[14])*20 - (src[12]+src[15])*6 + (src[11]+src[16])*3 - (src[10]+src[16]))+15)>>5];   dst[14]=cm[(((src[14]+src[15])*20 - (src[13]+src[16])*6 + (src[12]+src[16])*3 - (src[11]+src[15]))+15)>>5];   dst[15]=cm[(((src[15]+src[16])*20 - (src[14]+src[16])*6 + (src[13]+src[15])*3 - (src[12]+src[14]))+15)>>5];   dst+=dstStride;   src+=srcStride;   }}static void avg_mpeg4_qpel16_h_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int h){   uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;   int i;   for(i=0; i<h; i++)   {   dst[ 0]=(dst[0]+cm[(((src[ 0]+src[ 1])*20 - (src[ 0]+src[ 2])*6 + (src[ 1]+src[ 3])*3 - (src[ 2]+src[ 4]))+16)>>5]+1) >>1;   dst[ 1]=(dst[1]+cm[(((src[ 1]+src[ 2])*20 - (src[ 0]+src[ 3])*6 + (src[ 0]+src[ 4])*3 - (src[ 1]+src[ 5]))+16)>>5]+1) >>1;   dst[ 2]=(dst[2]+cm[(((src[ 2]+src[ 3])*20 - (src[ 1]+src[ 4])*6 + (src[ 0]+src[ 5])*3 - (src[ 0]+src[ 6]))+16)>>5]+1) >>1;   dst[ 3]=(dst[3]+cm[(((src[ 3]+src[ 4])*20 - (src[ 2]+src[ 5])*6 + (src[ 1]+src[ 6])*3 - (src[ 0]+src[ 7]))+16)>>5]+1) >>1;   dst[ 4]=(dst[4]+cm[(((src[ 4]+src[ 5])*20 - (src[ 3]+src[ 6])*6 + (src[ 2]+src[ 7])*3 - (src[ 1]+src[ 8]))+16)>>5]+1) >>1;   dst[ 5]=(dst[5]+cm[(((src[ 5]+src[ 6])*20 - (src[ 4]+src[ 7])*6 + (src[ 3]+src[ 8])*3 - (src[ 2]+src[ 9]))+16)>>5]+1) >>1;   dst[ 6]=(dst[6]+cm[(((src[ 6]+src[ 7])*20 - (src[ 5]+src[ 8])*6 + (src[ 4]+src[ 9])*3 - (src[ 3]+src[10]))+16)>>5]+1) >>1;   dst[ 7]=(dst[7]+cm[(((src[ 7]+src[ 8])*20 - (src[ 6]+src[ 9])*6 + (src[ 5]+src[10])*3 - (src[ 4]+src[11]))+16)>>5]+1) >>1;   dst[ 8]=(dst[8]+cm[(((src[ 8]+src[ 9])*20 - (src[ 7]+src[10])*6 + (src[ 6]+src[11])*3 - (src[ 5]+src[12]))+16)>>5]+1) >>1;   dst[ 9]=(dst[9]+cm[(((src[ 9]+src[10])*20 - (src[ 8]+src[11])*6 + (src[ 7]+src[12])*3 - (src[ 6]+src[13]))+16)>>5]+1) >>1;   dst[10]=(dst[10]+cm[(((src[10]+src[11])*20 - (src[ 9]+src[12])*6 + (src[ 8]+src[13])*3 - (src[ 7]+src[14]))+16)>>5]+1) >>1;   dst[11]=(dst[11]+cm[(((src[11]+src[12])*20 - (src[10]+src[13])*6 + (src[ 9]+src[14])*3 - (src[ 8]+src[15]))+16)>>5]+1) >>1;   dst[12]=(dst[12]+cm[(((src[12]+src[13])*20 - (src[11]+src[14])*6 + (src[10]+src[15])*3 - (src[ 9]+src[16]))+16)>>5]+1) >>1;   dst[13]=(dst[13]+cm[(((src[13]+src[14])*20 - (src[12]+src[15])*6 + (src[11]+src[16])*3 - (src[10]+src[16]))+16)>>5]+1) >>1;   dst[14]=(dst[14]+cm[(((src[14]+src[15])*20 - (src[13]+src[16])*6 + (src[12]+src[16])*3 - (src[11]+src[15]))+16)>>5]+1) >>1;   dst[15]=(dst[15]+cm[(((src[15]+src[16])*20 - (src[14]+src[16])*6 + (src[13]+src[15])*3 - (src[12]+src[14]))+16)>>5]+1) >>1;   dst+=dstStride;   src+=srcStride;   }}#ifdef JZ4740_MXU_OPTstatic void put_mpeg4_qpel16_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride){  int i,j;  uint32_t src_aln0,src_rs0,src_aln,dst_aln,dst_aln1;  int mul_ct0,mul_ct1,mul_ct2,mul_ct3;  int ct0;  mul_ct0=0x14141414;   //20 20 20 20  mul_ct1=0x06060606;   // 6  6  6  6  mul_ct2=0x03030303;   // 3  3  3  3  mul_ct3=0x01010101;   // 1  1  1  1      ct0=0x00100010;   //   16    16  src_aln0 = (((uint32_t)src) & 0xFFFFFFFC);  src_aln  = src_aln0;  src_rs0 = 4-(((uint32_t)src) & 3);   dst_aln = (uint32_t)dst;  dst_aln1 = dst_aln;  S32I2M(xr15,mul_ct0); //xr15:20 20 20 20  S32I2M(xr14,mul_ct1); //xr14:6  6  6  6  S32I2M(xr13,mul_ct2); //xr13:3  3  3  3  S32I2M(xr12,mul_ct3); //xr12:1  1  1  1  S32I2M(xr11,    ct0); //xr11:  16    16 for(i=0; i<4; i++) {   S32LDD(xr1,src_aln0,0

⌨️ 快捷键说明

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