History

Add SSE4 version of new apply_temporal_filter

This adds a preliminary version of vp9_apply_temporal_filter in SSE4.1. This patch merely adds the function and does not enable it yet. Speed Up: | ss_x=1 | ss_x=0 | ss_y=1 | 19.80X | 19.04X | ss_y=0 | 21.09X | 20.21X | BUG=webm:1591

chiyotsai committed 7 years ago

Commit b580f761 parent e3210937 files · +1131 −48Browse files

Showing the changes to test (1 of 7 files). Show all

Unified · Split

test/yuv_temporal_filter_test.cc+14−2
@@ -42,7 +42,14 @@ int GetFilterWeight(unsigned int row, unsigned int col, · 41 unmodified lines
42 42
43int GetModIndex(int sum_dist, int index, int rounding, int strength,43int GetModIndex(int sum_dist, int index, int rounding, int strength,
44 int filter_weight) {44 int filter_weight) {
45 int mod = (sum_dist * 3) / index;45 unsigned int index_mult[14] = {
46 0, 0, 0, 0, 49152, 39322, 32768, 28087, 24576, 21846, 19661, 17874, 0, 15124
47 };
48
49 assert(index >= 0 && index <= 13);
50 assert(index_mult[index] != 0);
51
52 int mod = (clamp(sum_dist, 0, UINT16_MAX) * index_mult[index]) >> 16;
46 mod += rounding;53 mod += rounding;
47 mod >>= strength;54 mod >>= strength;
48 55
@@ -564,5 +571,10 @@ TEST_P(YUVTemporalFilterTest, DISABLED_Speed) { · 515 unmodified lines
564}571}
565 572
566INSTANTIATE_TEST_CASE_P(C, YUVTemporalFilterTest,573INSTANTIATE_TEST_CASE_P(C, YUVTemporalFilterTest,
567 ::testing::Values(&vp9_apply_temporal_filter));574 ::testing::Values(&vp9_apply_temporal_filter_c));
575
576#if HAVE_SSE4_1
577INSTANTIATE_TEST_CASE_P(SSE4, YUVTemporalFilterTest,
578 ::testing::Values(&vp9_apply_temporal_filter_sse4_1));
579#endif // HAVE_SSE4_1
568} // namespace580} // namespace

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t