Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xiph.Org
aom-rav1e
Commits
bd9db2f5
Commit
bd9db2f5
authored
Oct 27, 2015
by
Angie Chiang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add idct8
Change-Id: I8092a6f229b196c5c8b7dcd2dff8aaf68253e422
parent
7d2b7b69
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
87 additions
and
0 deletions
+87
-0
vp10/common/vp10_inv_txfm1d.c
vp10/common/vp10_inv_txfm1d.c
+85
-0
vp10/common/vp10_inv_txfm1d.h
vp10/common/vp10_inv_txfm1d.h
+2
-0
No files found.
vp10/common/vp10_inv_txfm1d.c
View file @
bd9db2f5
...
...
@@ -81,3 +81,88 @@ void vp10_idct4_new(const int32_t *input, int32_t *output,
bf1
[
3
]
=
bf0
[
0
]
-
bf0
[
3
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
}
void
vp10_idct8_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
[
4
];
bf1
[
2
]
=
input
[
2
];
bf1
[
3
]
=
input
[
6
];
bf1
[
4
]
=
input
[
1
];
bf1
[
5
]
=
input
[
5
];
bf1
[
6
]
=
input
[
3
];
bf1
[
7
]
=
input
[
7
];
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
]
=
bf0
[
2
];
bf1
[
3
]
=
bf0
[
3
];
bf1
[
4
]
=
half_btf
(
cospi
[
56
],
bf0
[
4
],
-
cospi
[
8
],
bf0
[
7
],
cos_bit
[
stage
]);
bf1
[
5
]
=
half_btf
(
cospi
[
24
],
bf0
[
5
],
-
cospi
[
40
],
bf0
[
6
],
cos_bit
[
stage
]);
bf1
[
6
]
=
half_btf
(
cospi
[
40
],
bf0
[
5
],
cospi
[
24
],
bf0
[
6
],
cos_bit
[
stage
]);
bf1
[
7
]
=
half_btf
(
cospi
[
8
],
bf0
[
4
],
cospi
[
56
],
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
]
=
half_btf
(
cospi
[
32
],
bf0
[
0
],
cospi
[
32
],
bf0
[
1
],
cos_bit
[
stage
]);
bf1
[
1
]
=
half_btf
(
cospi
[
32
],
bf0
[
0
],
-
cospi
[
32
],
bf0
[
1
],
cos_bit
[
stage
]);
bf1
[
2
]
=
half_btf
(
cospi
[
48
],
bf0
[
2
],
-
cospi
[
16
],
bf0
[
3
],
cos_bit
[
stage
]);
bf1
[
3
]
=
half_btf
(
cospi
[
16
],
bf0
[
2
],
cospi
[
48
],
bf0
[
3
],
cos_bit
[
stage
]);
bf1
[
4
]
=
bf0
[
4
]
+
bf0
[
5
];
bf1
[
5
]
=
bf0
[
4
]
-
bf0
[
5
];
bf1
[
6
]
=
-
bf0
[
6
]
+
bf0
[
7
];
bf1
[
7
]
=
bf0
[
6
]
+
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
]
+
bf0
[
3
];
bf1
[
1
]
=
bf0
[
1
]
+
bf0
[
2
];
bf1
[
2
]
=
bf0
[
1
]
-
bf0
[
2
];
bf1
[
3
]
=
bf0
[
0
]
-
bf0
[
3
];
bf1
[
4
]
=
bf0
[
4
];
bf1
[
5
]
=
half_btf
(
-
cospi
[
32
],
bf0
[
5
],
cospi
[
32
],
bf0
[
6
],
cos_bit
[
stage
]);
bf1
[
6
]
=
half_btf
(
cospi
[
32
],
bf0
[
5
],
cospi
[
32
],
bf0
[
6
],
cos_bit
[
stage
]);
bf1
[
7
]
=
bf0
[
7
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
// stage 5
stage
++
;
bf0
=
step
;
bf1
=
output
;
bf1
[
0
]
=
bf0
[
0
]
+
bf0
[
7
];
bf1
[
1
]
=
bf0
[
1
]
+
bf0
[
6
];
bf1
[
2
]
=
bf0
[
2
]
+
bf0
[
5
];
bf1
[
3
]
=
bf0
[
3
]
+
bf0
[
4
];
bf1
[
4
]
=
bf0
[
3
]
-
bf0
[
4
];
bf1
[
5
]
=
bf0
[
2
]
-
bf0
[
5
];
bf1
[
6
]
=
bf0
[
1
]
-
bf0
[
6
];
bf1
[
7
]
=
bf0
[
0
]
-
bf0
[
7
];
range_check
(
stage
,
input
,
bf1
,
size
,
stage_range
[
stage
]);
}
vp10/common/vp10_inv_txfm1d.h
View file @
bd9db2f5
...
...
@@ -19,6 +19,8 @@ extern "C" {
void
vp10_idct4_new
(
const
int32_t
*
input
,
int32_t
*
output
,
const
int8_t
*
cos_bit
,
const
int8_t
*
stage_range
);
void
vp10_idct8_new
(
const
int32_t
*
input
,
int32_t
*
output
,
const
int8_t
*
cos_bit
,
const
int8_t
*
stage_range
);
#ifdef __cplusplus
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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