History

[UT] Reduce duplication in quantization tests

Sindre Aamås committed 10 years ago

Commit abaf3a41 parent eb9f5651 file · +12 −21Browse files

Showing the changes to test/encoder/EncUT_EncoderMbAux.cpp (1 of 1 file). Show all

Unified · Split

test/encoder/EncUT_EncoderMbAux.cpp+12−21
@@ -292,6 +292,7 @@ TEST (EncodeMbAuxTest, WelsGetNoneZeroCount_sse2) { · 291 unmodified lines
292#define WELS_ABS_LC(a) ((sign ^ (int32_t)(a)) - sign)292#define WELS_ABS_LC(a) ((sign ^ (int32_t)(a)) - sign)
293#define NEW_QUANT(pDct, ff, mf) (((ff)+ WELS_ABS_LC(pDct))*(mf)) >>16293#define NEW_QUANT(pDct, ff, mf) (((ff)+ WELS_ABS_LC(pDct))*(mf)) >>16
294#define WELS_NEW_QUANT(pDct,ff,mf) WELS_ABS_LC(NEW_QUANT(pDct, ff, mf))294#define WELS_NEW_QUANT(pDct,ff,mf) WELS_ABS_LC(NEW_QUANT(pDct, ff, mf))
295namespace {
295void WelsQuantFour4x4MaxAnchor (int16_t* pDct, int16_t* ff, int16_t* mf, int16_t* max) {296void WelsQuantFour4x4MaxAnchor (int16_t* pDct, int16_t* ff, int16_t* mf, int16_t* max) {
296 int32_t i, j, k, sign;297 int32_t i, j, k, sign;
297 int16_t max_abs;298 int16_t max_abs;
@@ -308,25 +309,7 @@ void WelsQuantFour4x4MaxAnchor (int16_t* pDct, int16_t* ff, int16_t* mf, int16_ · 10 unmodified lines
308 max[k] = max_abs;309 max[k] = max_abs;
309 }310 }
310}311}
311TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_c) {312void TestWelsQuantFour4x4Max (PQuantizationMaxFunc func) {
312 int16_t ff[8], mf[8];
313 int16_t iDctA[64], iMaxA[16];
314 int16_t iDctC[64], iMaxC[16];
315 for (int i = 0; i < 8; i++) {
316 ff[i] = rand() & 32767;
317 mf[i] = rand() & 32767;
318 }
319 for (int i = 0; i < 64; i++)
320 iDctA[i] = iDctC[i] = (rand() & 65535) - 32767;
321 WelsQuantFour4x4MaxAnchor (iDctA, ff, mf, iMaxA);
322 WelsQuantFour4x4Max_c (iDctC, ff, mf, iMaxC);
323 for (int i = 0; i < 64; i++)
324 EXPECT_EQ (iDctA[i], iDctC[i]);
325 for (int i = 0; i < 4; i++)
326 EXPECT_EQ (iMaxA[i], iMaxC[i]);
327}
328#ifdef X86_ASM
329TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) {
330 CMemoryAlign cMemoryAlign (0);313 CMemoryAlign cMemoryAlign (0);
331 ALLOC_MEMORY (int16_t, ff, 8);314 ALLOC_MEMORY (int16_t, ff, 8);
332 ALLOC_MEMORY (int16_t, mf, 8);315 ALLOC_MEMORY (int16_t, mf, 8);
@@ -340,8 +323,8 @@ TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) { · 7 unmodified lines
340 }323 }
341 for (int i = 0; i < 64; i++)324 for (int i = 0; i < 64; i++)
342 iDctC[i] = iDctS[i] = (rand() & 65535) - 32767;325 iDctC[i] = iDctS[i] = (rand() & 65535) - 32767;
343 WelsQuantFour4x4Max_c (iDctC, ff, mf, iMaxC);326 WelsQuantFour4x4MaxAnchor (iDctC, ff, mf, iMaxC);
344 WelsQuantFour4x4Max_sse2 (iDctS, ff, mf, iMaxS);327 func (iDctS, ff, mf, iMaxS);
345 for (int i = 0; i < 64; i++)328 for (int i = 0; i < 64; i++)
346 EXPECT_EQ (iDctC[i], iDctS[i]);329 EXPECT_EQ (iDctC[i], iDctS[i]);
347 for (int i = 0; i < 4; i++)330 for (int i = 0; i < 4; i++)
@@ -353,6 +336,14 @@ TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) { · 5 unmodified lines
353 FREE_MEMORY (iMaxC);336 FREE_MEMORY (iMaxC);
354 FREE_MEMORY (iMaxS);337 FREE_MEMORY (iMaxS);
355}338}
339} // anon ns
340TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_c) {
341 TestWelsQuantFour4x4Max (WelsQuantFour4x4Max_c);
342}
343#ifdef X86_ASM
344TEST (EncodeMbAuxTest, WelsQuantFour4x4Max_sse2) {
345 TestWelsQuantFour4x4Max (WelsQuantFour4x4Max_sse2);
346}
356#endif347#endif
357int32_t WelsHadamardQuant2x2SkipAnchor (int16_t* rs, int16_t ff, int16_t mf) {348int32_t WelsHadamardQuant2x2SkipAnchor (int16_t* rs, int16_t ff, int16_t mf) {
358 int16_t pDct[4], s[4];349 int16_t pDct[4], s[4];

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