40 for(
i = 0;
i < 4;
i++){
46 temp[4*
i+0] = z0 + z3;
47 temp[4*
i+1] = z1 + z2;
48 temp[4*
i+2] = z1 - z2;
49 temp[4*
i+3] = z0 - z3;
62 memset(
block, 0, 16*
sizeof(int16_t));
64 for(
i = 0;
i < 4;
i++){
65 const int z0 = 13*(
temp[4*0+
i] +
temp[4*2+
i]) + 0x200;
66 const int z1 = 13*(
temp[4*0+
i] -
temp[4*2+
i]) + 0x200;
67 const int z2 = 7*
temp[4*1+
i] - 17*
temp[4*3+
i];
68 const int z3 = 17*
temp[4*1+
i] + 7*
temp[4*3+
i];
91 for(
i = 0;
i < 4;
i++){
94 const int z2 = 21*
temp[4*1+
i] - 51*
temp[4*3+
i];
95 const int z3 = 51*
temp[4*1+
i] + 21*
temp[4*3+
i];
97 block[
i*4+0] = (z0 + z3) >> 11;
98 block[
i*4+1] = (z1 + z2) >> 11;
99 block[
i*4+2] = (z1 - z2) >> 11;
100 block[
i*4+3] = (z0 - z3) >> 11;
108 dc = (13*13*dc + 0x200) >> 10;
109 for (
i = 0;
i < 4;
i++)
111 for (j = 0; j < 4; j++)
120 int16_t dc = (13 * 13 * 3 *
block[0]) >> 11;
124 for (j = 0; j < 4; j++)
143#elif ARCH_X86 && HAVE_X86ASM
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
#define i(width, name, range_min, range_max)
common internal and external API header
static void rv34_inv_transform_noround_c(int16_t *block)
RealVideo 3.0/4.0 inverse transform for DC block.
static void rv34_inv_transform_dc_noround_c(int16_t *block)
static void rv34_idct_add_c(uint8_t *dst, ptrdiff_t stride, int16_t *block)
Real Video 3.0/4.0 inverse transform + sample reconstruction Code is almost the same as in SVQ3,...
static av_always_inline void rv34_row_transform(int temp[16], int16_t *block)
static void rv34_idct_dc_add_c(uint8_t *dst, ptrdiff_t stride, int dc)
av_cold void ff_rv34dsp_init(RV34DSPContext *c)
av_cold void ff_rv34dsp_init_riscv(RV34DSPContext *c)
RV30/40 decoder motion compensation functions.
void ff_rv34dsp_init_x86(RV34DSPContext *c)
av_cold void ff_rv34dsp_init_arm(RV34DSPContext *c)