Browse Source

Merge commit 'b254490bdabb21bd517c05b1a68717f9952ac8c4'

* commit 'b254490bdabb21bd517c05b1a68717f9952ac8c4':
  vc1: arm: Add NEON no_rnd chroma MC

Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n2.2-rc1
Michael Niedermayer 11 years ago
parent
commit
4fa91b88c6
2 changed files with 27 additions and 0 deletions
  1. +13
    -0
      libavcodec/arm/h264cmc_neon.S
  2. +14
    -0
      libavcodec/arm/vc1dsp_init_neon.c

+ 13
- 0
libavcodec/arm/h264cmc_neon.S View File

@@ -39,6 +39,9 @@ function ff_\type\()_\codec\()_chroma_mc8_neon, export=1
add r6, r6, r7, lsl #1 add r6, r6, r7, lsl #1
vld1.16 {d22[],d23[]}, [r6,:16] vld1.16 {d22[],d23[]}, [r6,:16]
.endif .endif
.ifc \codec,vc1
vmov.u16 q11, #28
.endif


A muls r7, r4, r5 A muls r7, r4, r5
T mul r7, r4, r5 T mul r7, r4, r5
@@ -183,6 +186,9 @@ function ff_\type\()_\codec\()_chroma_mc4_neon, export=1
add r6, r6, r7, lsl #1 add r6, r6, r7, lsl #1
vld1.16 {d22[],d23[]}, [r6,:16] vld1.16 {d22[],d23[]}, [r6,:16]
.endif .endif
.ifc \codec,vc1
vmov.u16 q11, #28
.endif


A muls r7, r4, r5 A muls r7, r4, r5
T mul r7, r4, r5 T mul r7, r4, r5
@@ -396,3 +402,10 @@ endconst
h264_chroma_mc4 put, rv40 h264_chroma_mc4 put, rv40
h264_chroma_mc4 avg, rv40 h264_chroma_mc4 avg, rv40
#endif #endif

#if CONFIG_VC1_DECODER
h264_chroma_mc8 put, vc1
h264_chroma_mc8 avg, vc1
h264_chroma_mc4 put, vc1
h264_chroma_mc4 avg, vc1
#endif

+ 14
- 0
libavcodec/arm/vc1dsp_init_neon.c View File

@@ -70,6 +70,15 @@ void ff_put_vc1_mspel_mc32_neon(uint8_t *dst, const uint8_t *src,
void ff_put_vc1_mspel_mc33_neon(uint8_t *dst, const uint8_t *src, void ff_put_vc1_mspel_mc33_neon(uint8_t *dst, const uint8_t *src,
ptrdiff_t stride, int rnd); ptrdiff_t stride, int rnd);


void ff_put_vc1_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride, int h,
int x, int y);
void ff_avg_vc1_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride, int h,
int x, int y);
void ff_put_vc1_chroma_mc4_neon(uint8_t *dst, uint8_t *src, int stride, int h,
int x, int y);
void ff_avg_vc1_chroma_mc4_neon(uint8_t *dst, uint8_t *src, int stride, int h,
int x, int y);

av_cold void ff_vc1dsp_init_neon(VC1DSPContext *dsp) av_cold void ff_vc1dsp_init_neon(VC1DSPContext *dsp)
{ {
dsp->vc1_inv_trans_8x8 = ff_vc1_inv_trans_8x8_neon; dsp->vc1_inv_trans_8x8 = ff_vc1_inv_trans_8x8_neon;
@@ -97,4 +106,9 @@ av_cold void ff_vc1dsp_init_neon(VC1DSPContext *dsp)
dsp->put_vc1_mspel_pixels_tab[13] = ff_put_vc1_mspel_mc13_neon; dsp->put_vc1_mspel_pixels_tab[13] = ff_put_vc1_mspel_mc13_neon;
dsp->put_vc1_mspel_pixels_tab[14] = ff_put_vc1_mspel_mc23_neon; dsp->put_vc1_mspel_pixels_tab[14] = ff_put_vc1_mspel_mc23_neon;
dsp->put_vc1_mspel_pixels_tab[15] = ff_put_vc1_mspel_mc33_neon; dsp->put_vc1_mspel_pixels_tab[15] = ff_put_vc1_mspel_mc33_neon;

dsp->put_no_rnd_vc1_chroma_pixels_tab[0] = ff_put_vc1_chroma_mc8_neon;
dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = ff_avg_vc1_chroma_mc8_neon;
dsp->put_no_rnd_vc1_chroma_pixels_tab[1] = ff_put_vc1_chroma_mc4_neon;
dsp->avg_no_rnd_vc1_chroma_pixels_tab[1] = ff_avg_vc1_chroma_mc4_neon;
} }

Loading…
Cancel
Save