Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xiph.Org
aom-rav1e
Commits
0ca0cc24
Commit
0ca0cc24
authored
Oct 27, 2015
by
Angie Chiang
Browse files
Add iadst8
Change-Id: Ia58e4735d7d7bfd2ac55259c32705118c6745c6d
parent
ba69089e
Changes
2
Hide whitespace changes
Inline
Side-by-side
vp10/common/vp10_inv_txfm1d.c
View file @
0ca0cc24
...
...
@@ -763,3 +763,118 @@ void vp10_iadst4_new(const int32_t *input, int32_t *output,
bf1
[
3
]
=
bf0
[
0
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
}
void
vp10_iadst8_new
(
const
int32_t
*
input
,
int32_t
*
output
,
const
int8_t
*
cos_bit
,
const
int8_t
*
stage_range
)
{
const
int32_t
size
=
8
;
const
int32_t
*
cospi
;
int32_t
stage
=
0
;
int32_t
*
bf0
,
*
bf1
;
int32_t
step
[
8
];
// stage 0;
range_check
(
stage
,
input
,
input
,
size
,
stage_range
[
stage
]);
// stage 1;
stage
++
;
bf1
=
output
;
bf1
[
0
]
=
input
[
0
];
bf1
[
1
]
=
-
input
[
7
];
bf1
[
2
]
=
-
input
[
3
];
bf1
[
3
]
=
input
[
4
];
bf1
[
4
]
=
-
input
[
1
];
bf1
[
5
]
=
input
[
6
];
bf1
[
6
]
=
input
[
2
];
bf1
[
7
]
=
-
input
[
5
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
// stage 2
stage
++
;
cospi
=
cospi_arr
[
cos_bit
[
stage
]
-
cos_bit_min
];
bf0
=
output
;
bf1
=
step
;
bf1
[
0
]
=
bf0
[
0
];
bf1
[
1
]
=
bf0
[
1
];
bf1
[
2
]
=
half_btf
(
cospi
[
32
],
bf0
[
2
],
cospi
[
32
],
bf0
[
3
],
cos_bit
[
stage
]);
bf1
[
3
]
=
half_btf
(
cospi
[
32
],
bf0
[
2
],
-
cospi
[
32
],
bf0
[
3
],
cos_bit
[
stage
]);
bf1
[
4
]
=
bf0
[
4
];
bf1
[
5
]
=
bf0
[
5
];
bf1
[
6
]
=
half_btf
(
cospi
[
32
],
bf0
[
6
],
cospi
[
32
],
bf0
[
7
],
cos_bit
[
stage
]);
bf1
[
7
]
=
half_btf
(
cospi
[
32
],
bf0
[
6
],
-
cospi
[
32
],
bf0
[
7
],
cos_bit
[
stage
]);
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
// stage 3
stage
++
;
cospi
=
cospi_arr
[
cos_bit
[
stage
]
-
cos_bit_min
];
bf0
=
step
;
bf1
=
output
;
bf1
[
0
]
=
bf0
[
0
]
+
bf0
[
2
];
bf1
[
1
]
=
bf0
[
1
]
+
bf0
[
3
];
bf1
[
2
]
=
bf0
[
0
]
-
bf0
[
2
];
bf1
[
3
]
=
bf0
[
1
]
-
bf0
[
3
];
bf1
[
4
]
=
bf0
[
4
]
+
bf0
[
6
];
bf1
[
5
]
=
bf0
[
5
]
+
bf0
[
7
];
bf1
[
6
]
=
bf0
[
4
]
-
bf0
[
6
];
bf1
[
7
]
=
bf0
[
5
]
-
bf0
[
7
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
// stage 4
stage
++
;
cospi
=
cospi_arr
[
cos_bit
[
stage
]
-
cos_bit_min
];
bf0
=
output
;
bf1
=
step
;
bf1
[
0
]
=
bf0
[
0
];
bf1
[
1
]
=
bf0
[
1
];
bf1
[
2
]
=
bf0
[
2
];
bf1
[
3
]
=
bf0
[
3
];
bf1
[
4
]
=
half_btf
(
cospi
[
16
],
bf0
[
4
],
cospi
[
48
],
bf0
[
5
],
cos_bit
[
stage
]);
bf1
[
5
]
=
half_btf
(
cospi
[
48
],
bf0
[
4
],
-
cospi
[
16
],
bf0
[
5
],
cos_bit
[
stage
]);
bf1
[
6
]
=
half_btf
(
-
cospi
[
48
],
bf0
[
6
],
cospi
[
16
],
bf0
[
7
],
cos_bit
[
stage
]);
bf1
[
7
]
=
half_btf
(
cospi
[
16
],
bf0
[
6
],
cospi
[
48
],
bf0
[
7
],
cos_bit
[
stage
]);
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
// stage 5
stage
++
;
cospi
=
cospi_arr
[
cos_bit
[
stage
]
-
cos_bit_min
];
bf0
=
step
;
bf1
=
output
;
bf1
[
0
]
=
bf0
[
0
]
+
bf0
[
4
];
bf1
[
1
]
=
bf0
[
1
]
+
bf0
[
5
];
bf1
[
2
]
=
bf0
[
2
]
+
bf0
[
6
];
bf1
[
3
]
=
bf0
[
3
]
+
bf0
[
7
];
bf1
[
4
]
=
bf0
[
0
]
-
bf0
[
4
];
bf1
[
5
]
=
bf0
[
1
]
-
bf0
[
5
];
bf1
[
6
]
=
bf0
[
2
]
-
bf0
[
6
];
bf1
[
7
]
=
bf0
[
3
]
-
bf0
[
7
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
// stage 6
stage
++
;
cospi
=
cospi_arr
[
cos_bit
[
stage
]
-
cos_bit_min
];
bf0
=
output
;
bf1
=
step
;
bf1
[
0
]
=
half_btf
(
cospi
[
4
],
bf0
[
0
],
cospi
[
60
],
bf0
[
1
],
cos_bit
[
stage
]);
bf1
[
1
]
=
half_btf
(
cospi
[
60
],
bf0
[
0
],
-
cospi
[
4
],
bf0
[
1
],
cos_bit
[
stage
]);
bf1
[
2
]
=
half_btf
(
cospi
[
20
],
bf0
[
2
],
cospi
[
44
],
bf0
[
3
],
cos_bit
[
stage
]);
bf1
[
3
]
=
half_btf
(
cospi
[
44
],
bf0
[
2
],
-
cospi
[
20
],
bf0
[
3
],
cos_bit
[
stage
]);
bf1
[
4
]
=
half_btf
(
cospi
[
36
],
bf0
[
4
],
cospi
[
28
],
bf0
[
5
],
cos_bit
[
stage
]);
bf1
[
5
]
=
half_btf
(
cospi
[
28
],
bf0
[
4
],
-
cospi
[
36
],
bf0
[
5
],
cos_bit
[
stage
]);
bf1
[
6
]
=
half_btf
(
cospi
[
52
],
bf0
[
6
],
cospi
[
12
],
bf0
[
7
],
cos_bit
[
stage
]);
bf1
[
7
]
=
half_btf
(
cospi
[
12
],
bf0
[
6
],
-
cospi
[
52
],
bf0
[
7
],
cos_bit
[
stage
]);
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
// stage 7
stage
++
;
bf0
=
step
;
bf1
=
output
;
bf1
[
0
]
=
bf0
[
1
];
bf1
[
1
]
=
bf0
[
6
];
bf1
[
2
]
=
bf0
[
3
];
bf1
[
3
]
=
bf0
[
4
];
bf1
[
4
]
=
bf0
[
5
];
bf1
[
5
]
=
bf0
[
2
];
bf1
[
6
]
=
bf0
[
7
];
bf1
[
7
]
=
bf0
[
0
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
}
vp10/common/vp10_inv_txfm1d.h
View file @
0ca0cc24
...
...
@@ -28,6 +28,8 @@ void vp10_idct32_new(const int32_t *input, int32_t *output,
void
vp10_iadst4_new
(
const
int32_t
*
input
,
int32_t
*
output
,
const
int8_t
*
cos_bit
,
const
int8_t
*
stage_range
);
void
vp10_iadst8_new
(
const
int32_t
*
input
,
int32_t
*
output
,
const
int8_t
*
cos_bit
,
const
int8_t
*
stage_range
);
#ifdef __cplusplus
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment