static void h264_h_loop_filter_luma_altivec(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) { register vector unsigned char line0, line1, line2, line3, line4, line5; if((tc0[0] & tc0[1] & tc0[2] & tc0[3]) < 0) return; readAndTranspose16x6(pix-3, stride, line0, line1, line2, line3, line4, line5); h264_loop_filter_luma_altivec(line0, line1, line2, line3, line4, line5, alpha, beta, tc0); transpose4x16(line1, line2, line3, line4); write16x4(pix-2, stride, line1, line2, line3, line4); }
void x264_deblock_h_luma_altivec( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 ) { register vec_u8_t line0, line1, line2, line3, line4, line5; if( (tc0[0] & tc0[1] & tc0[2] & tc0[3]) < 0 ) return; read_and_transpose16x6(pix-3, stride, line0, line1, line2, line3, line4, line5); h264_loop_filter_luma_altivec(line0, line1, line2, line3, line4, line5, alpha, beta, tc0); transpose4x16(line1, line2, line3, line4); write16x4(pix-2, stride, line1, line2, line3, line4); }
static void h264_v_loop_filter_luma_altivec(uint8_t *pix, int stride, int alpha, int beta, int8_t *tc0) { if((tc0[0] & tc0[1] & tc0[2] & tc0[3]) >= 0) { register vector unsigned char p2 = vec_ld(-3*stride, pix); register vector unsigned char p1 = vec_ld(-2*stride, pix); register vector unsigned char p0 = vec_ld(-1*stride, pix); register vector unsigned char q0 = vec_ld(0, pix); register vector unsigned char q1 = vec_ld(stride, pix); register vector unsigned char q2 = vec_ld(2*stride, pix); h264_loop_filter_luma_altivec(p2, p1, p0, q0, q1, q2, alpha, beta, tc0); vec_st(p1, -2*stride, pix); vec_st(p0, -1*stride, pix); vec_st(q0, 0, pix); vec_st(q1, stride, pix); } }
void x264_deblock_v_luma_altivec( uint8_t *pix, intptr_t stride, int alpha, int beta, int8_t *tc0 ) { if( (tc0[0] & tc0[1] & tc0[2] & tc0[3]) >= 0 ) { register vec_u8_t p2 = vec_ld(-3*stride, pix); register vec_u8_t p1 = vec_ld(-2*stride, pix); register vec_u8_t p0 = vec_ld(-1*stride, pix); register vec_u8_t q0 = vec_ld(0, pix); register vec_u8_t q1 = vec_ld(stride, pix); register vec_u8_t q2 = vec_ld(2*stride, pix); h264_loop_filter_luma_altivec(p2, p1, p0, q0, q1, q2, alpha, beta, tc0); vec_st(p1, -2*stride, pix); vec_st(p0, -1*stride, pix); vec_st(q0, 0, pix); vec_st(q1, stride, pix); } }