mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-08 06:09:50 +00:00
Merge commit 'b254490bda'
* commit 'b254490bda':
vc1: arm: Add NEON no_rnd chroma MC
Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
4fa91b88c6
2 changed files with 27 additions and 0 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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…
Add table
Add a link
Reference in a new issue