OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebM project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 161, 81, 106, 72, 135, 222, 234, 137, 66, 137, 106, 243, 210, 147, 95, | 136 161, 81, 106, 72, 135, 222, 234, 137, 66, 137, 106, 243, 210, 147, 95, |
137 15, 137, 110, 85, 66, 16, 96, 167, 147, 150, 173, 203, 140, 118, 196, | 137 15, 137, 110, 85, 66, 16, 96, 167, 147, 150, 173, 203, 140, 118, 196, |
138 84, 147, 160, 19, 95, 101, 123, 74, 132, 202, 82, 166, 12, 131, 166, | 138 84, 147, 160, 19, 95, 101, 123, 74, 132, 202, 82, 166, 12, 131, 166, |
139 189, 170, 159, 85, 79, 66, 57, 152, 132, 203, 194, 0, 1, 56, 146, 180, | 139 189, 170, 159, 85, 79, 66, 57, 152, 132, 203, 194, 0, 1, 56, 146, 180, |
140 224, 156, 28, 83, 181, 79, 76, 80, 46, 160, 175, 59, 106, 43, 87, 75, | 140 224, 156, 28, 83, 181, 79, 76, 80, 46, 160, 175, 59, 106, 43, 87, 75, |
141 136, 85, 189, 46, 71, 200, 90 | 141 136, 85, 189, 46, 71, 200, 90 |
142 }; | 142 }; |
143 | 143 |
144 uint8_t *src = const_cast<uint8_t*>(test_data); | 144 uint8_t *src = const_cast<uint8_t*>(test_data); |
145 | 145 |
146 REGISTER_STATE_CHECK(sixtap_predict_(&src[kSrcStride * 2 + 2 + 1], kSrcStride, | 146 ASM_REGISTER_STATE_CHECK( |
147 2, 2, dst_, kDstStride)); | 147 sixtap_predict_(&src[kSrcStride * 2 + 2 + 1], kSrcStride, |
| 148 2, 2, dst_, kDstStride)); |
148 | 149 |
149 for (int i = 0; i < height_; ++i) | 150 for (int i = 0; i < height_; ++i) |
150 for (int j = 0; j < width_; ++j) | 151 for (int j = 0; j < width_; ++j) |
151 ASSERT_EQ(expected_dst[i * kDstStride + j], dst_[i * kDstStride + j]) | 152 ASSERT_EQ(expected_dst[i * kDstStride + j], dst_[i * kDstStride + j]) |
152 << "i==" << (i * width_ + j); | 153 << "i==" << (i * width_ + j); |
153 } | 154 } |
154 | 155 |
155 using libvpx_test::ACMRandom; | 156 using libvpx_test::ACMRandom; |
156 | 157 |
157 TEST_P(SixtapPredictTest, TestWithRandomData) { | 158 TEST_P(SixtapPredictTest, TestWithRandomData) { |
158 ACMRandom rnd(ACMRandom::DeterministicSeed()); | 159 ACMRandom rnd(ACMRandom::DeterministicSeed()); |
159 for (int i = 0; i < kSrcSize; ++i) | 160 for (int i = 0; i < kSrcSize; ++i) |
160 src_[i] = rnd.Rand8(); | 161 src_[i] = rnd.Rand8(); |
161 | 162 |
162 // Run tests for all possible offsets. | 163 // Run tests for all possible offsets. |
163 for (int xoffset = 0; xoffset < 8; ++xoffset) { | 164 for (int xoffset = 0; xoffset < 8; ++xoffset) { |
164 for (int yoffset = 0; yoffset < 8; ++yoffset) { | 165 for (int yoffset = 0; yoffset < 8; ++yoffset) { |
165 // Call c reference function. | 166 // Call c reference function. |
166 // Move start point to next pixel to test if the function reads | 167 // Move start point to next pixel to test if the function reads |
167 // unaligned data correctly. | 168 // unaligned data correctly. |
168 vp8_sixtap_predict16x16_c(&src_[kSrcStride * 2 + 2 + 1], kSrcStride, | 169 vp8_sixtap_predict16x16_c(&src_[kSrcStride * 2 + 2 + 1], kSrcStride, |
169 xoffset, yoffset, dst_c_, kDstStride); | 170 xoffset, yoffset, dst_c_, kDstStride); |
170 | 171 |
171 // Run test. | 172 // Run test. |
172 REGISTER_STATE_CHECK( | 173 ASM_REGISTER_STATE_CHECK( |
173 sixtap_predict_(&src_[kSrcStride * 2 + 2 + 1], kSrcStride, | 174 sixtap_predict_(&src_[kSrcStride * 2 + 2 + 1], kSrcStride, |
174 xoffset, yoffset, dst_, kDstStride)); | 175 xoffset, yoffset, dst_, kDstStride)); |
175 | 176 |
176 for (int i = 0; i < height_; ++i) | 177 for (int i = 0; i < height_; ++i) |
177 for (int j = 0; j < width_; ++j) | 178 for (int j = 0; j < width_; ++j) |
178 ASSERT_EQ(dst_c_[i * kDstStride + j], dst_[i * kDstStride + j]) | 179 ASSERT_EQ(dst_c_[i * kDstStride + j], dst_[i * kDstStride + j]) |
179 << "i==" << (i * width_ + j); | 180 << "i==" << (i * width_ + j); |
180 } | 181 } |
181 } | 182 } |
182 } | 183 } |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 const sixtap_predict_fn_t sixtap_8x4_ssse3 = vp8_sixtap_predict8x4_ssse3; | 232 const sixtap_predict_fn_t sixtap_8x4_ssse3 = vp8_sixtap_predict8x4_ssse3; |
232 const sixtap_predict_fn_t sixtap_4x4_ssse3 = vp8_sixtap_predict4x4_ssse3; | 233 const sixtap_predict_fn_t sixtap_4x4_ssse3 = vp8_sixtap_predict4x4_ssse3; |
233 INSTANTIATE_TEST_CASE_P( | 234 INSTANTIATE_TEST_CASE_P( |
234 SSSE3, SixtapPredictTest, ::testing::Values( | 235 SSSE3, SixtapPredictTest, ::testing::Values( |
235 make_tuple(16, 16, sixtap_16x16_ssse3), | 236 make_tuple(16, 16, sixtap_16x16_ssse3), |
236 make_tuple(8, 8, sixtap_8x8_ssse3), | 237 make_tuple(8, 8, sixtap_8x8_ssse3), |
237 make_tuple(8, 4, sixtap_8x4_ssse3), | 238 make_tuple(8, 4, sixtap_8x4_ssse3), |
238 make_tuple(4, 4, sixtap_4x4_ssse3))); | 239 make_tuple(4, 4, sixtap_4x4_ssse3))); |
239 #endif | 240 #endif |
240 } // namespace | 241 } // namespace |
OLD | NEW |