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
4242
4343 int GetModIndex(int sum_dist, int index, int rounding, int strength,
4444 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;
4653 mod += rounding;
4754 mod >>= strength;
4855
@@ -564,5 +571,10 @@ TEST_P(YUVTemporalFilterTest, DISABLED_Speed) { · 515 unmodified lines
564571 }
565572
566573 INSTANTIATE_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
577+INSTANTIATE_TEST_CASE_P(SSE4, YUVTemporalFilterTest,
578+ ::testing::Values(&vp9_apply_temporal_filter_sse4_1));
579+#endif // HAVE_SSE4_1
568580 } // 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